]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
7b65abaf5f6a99088b96f16378bb79132070cbc7
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
2
3 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
4 Removed.
5 * include/std/type_traits (is_same): Use
6 _GLIBCXX_USE_BUILTIN_TRAIT instead of
7 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
8 (is_same_v): Likewise.
9
10 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
11
12 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
13
14 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
15
16 PR libstdc++/100147
17 * include/bits/gslice.h (operator=): Add comment about lack of
18 self-assignment check.
19
20 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
21
22 * include/tr2/type_traits (bases, direct_bases): Use
23 __has_builtin to check if required built-ins are supported.
24
25 2024-02-07 Patrick Palka <ppalka@redhat.com>
26
27 PR testsuite/113710
28 PR c++/113814
29 * include/bits/stl_pair.h (tuple_element): Add forward
30 declaration of the partial specialization for tuple.
31
32 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
33
34 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
35 for other environments.
36
37 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
38
39 * include/std/format (__format::_Spec::_M_reserved): Define new
40 bit-field members to reserve padding bits for future extensions.
41
42 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
43
44 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
45 instead of libstdc++fs.a.
46 * src/experimental/Makefile.in: Regenerate.
47 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
48 well.
49 * src/filesystem/Makefile.in: Regenerate.
50
51 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
52
53 * include/bits/text_encoding-data.h: Regenerate.
54 * include/bits/unicode-data.h: Regenerate.
55 * scripts/gen_text_encoding_data.py: Add copyright and license
56 text to the output.
57
58 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
59
60 PR libstdc++/113335
61 * include/bits/std_function.h (__function_guide_helper): Add
62 partial specialization for explicit object member functions, as
63 per LWG 3617.
64 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
65 explicit object member functions.
66 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
67 Likewise.
68
69 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
70
71 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
72
73 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
74
75 * include/experimental/internet (network_v6::network): Define.
76 (network_v6::hosts): Finish implementing.
77 (network_v6::to_string): Do not concatenate std::string to
78 arbitrary std::basic_string specialization.
79 * testsuite/experimental/net/internet/network/v6/cons.cc: New
80 test.
81
82 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
83
84 PR libstdc++/90276
85 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
86 comparison function to use less-than instead of equality.
87
88 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
89
90 PR libstdc++/90276
91 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
92 perfect forwarding for iterator arguments.
93
94 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
95
96 * include/std/string_view (basic_string_view(R&&)): Remove
97 constraint that traits_type must be the same, as per LWG 3857.
98 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
99 Explicit conversion between different specializations should be
100 allowed.
101 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
102 Likewise.
103
104 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
105
106 * include/std/syncstream (basic_osyncstream::operator=): Remove
107 noexcept, as per LWG 3867.
108
109 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
110
111 * include/std/generator (promise_type::yield_value): Remove
112 noexcept from fourth overload, as per LWG 3894.
113
114 2024-02-01 Patrick Palka <ppalka@redhat.com>
115
116 PR libstdc++/113309
117 PR libstdc++/109203
118 * include/bits/ranges_util.h (__detail::__pair_like): Don't
119 define in C++23 mode.
120 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
121 (__detail::__is_subrange<subrange>): Moved from <ranges>.
122 (__detail::__is_tuple_like_v<subrange>): Likewise.
123 * include/bits/stl_iterator.h: Include <bits/utility.h> for
124 C++23.
125 (__different_from): Move to <concepts>.
126 (__iter_key_t): Adjust for C++23 as per P2165R4.
127 (__iter_val_t): Likewise.
128 * include/bits/stl_pair.h (pair, array): Forward declare.
129 (get): Forward declare all overloads relevant to P2165R4
130 tuple-like constructors.
131 (__is_tuple_v): Define for C++23.
132 (__is_tuple_like_v): Define for C++23.
133 (__tuple_like): Define for C++23 as per P2165R4.
134 (__pair_like): Define for C++23 as per P2165R4.
135 (__eligibile_tuple_like): Define for C++23.
136 (__eligibile_pair_like): Define for C++23.
137 (pair::_S_constructible_from_pair_like): Define for C++23.
138 (pair::_S_convertible_from_pair_like): Define for C++23.
139 (pair::_S_dangles_from_pair_like): Define for C++23.
140 (pair::pair): Define overloads taking a tuple-like type for
141 C++23 as per P2165R4.
142 (pair::_S_assignable_from_tuple_like): Define for C++23.
143 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
144 (pair::operator=): Define overloads taking a tuple-like type for
145 C++23 as per P2165R4.
146 * include/bits/utility.h (ranges::__detail::__is_subrange):
147 Moved from <ranges>.
148 * include/bits/version.def (tuple_like): Define for C++23.
149 * include/bits/version.h: Regenerate.
150 * include/std/concepts (__different_from): Moved from
151 <bits/stl_iterator.h>.
152 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
153 * include/std/map (__cpp_lib_tuple_like): Define C++23.
154 * include/std/ranges (__detail::__is_subrange): Moved to
155 <bits/utility.h>.
156 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
157 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
158 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
159 uses with plain tuple as per P2165R4.
160 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
161 (__tuple_like_tag_t): Define for C++23.
162 (__tuple_cmp): Forward declare for C++23.
163 (_Tuple_impl::_Tuple_impl): Define overloads taking
164 __tuple_like_tag_t and a tuple-like type for C++23.
165 (_Tuple_impl::_M_assign): Likewise.
166 (tuple::__constructible_from_tuple_like): Define for C++23.
167 (tuple::__convertible_from_tuple_like): Define for C++23.
168 (tuple::__dangles_from_tuple_like): Define for C++23.
169 (tuple::tuple): Define overloads taking a tuple-like type for
170 C++23 as per P2165R4.
171 (tuple::__assignable_from_tuple_like): Define for C++23.
172 (tuple::__const_assignable_from_tuple_like): Define for C++23.
173 (tuple::operator=): Define overloads taking a tuple-like type
174 for C++23 as per P2165R4.
175 (tuple::__tuple_like_common_comparison_category): Define for C++23.
176 (tuple::operator<=>): Define overload taking a tuple-like type
177 for C++23 as per P2165R4.
178 (array, get): Forward declarations moved to <bits/stl_pair.h>.
179 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
180 (apply): Likewise.
181 (make_from_tuple): Likewise.
182 (__tuple_like_common_reference): Define for C++23.
183 (basic_common_reference): Adjust as per P2165R4.
184 (__tuple_like_common_type): Define for C++23.
185 (common_type): Adjust as per P2165R4.
186 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
187 C++23.
188 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
189 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
190 and 2-tuple interchangeably.
191 (test05): New test.
192 * testsuite/20_util/pair/p2165r4.cc: New test.
193 * testsuite/20_util/tuple/p2165r4.cc: New test.
194
195 2024-02-01 Patrick Palka <ppalka@redhat.com>
196
197 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
198 factored out from ...
199 (pair::operator=): ... the constraints of the const overloads.
200
201 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
202
203 * include/bits/version.tpl: Do not use def-file-line for each
204 macro being defined.
205 * include/bits/version.h: Regenerate.
206
207 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
208
209 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
210 dg-error pattern.
211 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
212 Likewise.
213 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
214 Likewise.
215 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
216 Likewise.
217 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
218 Likewise.
219 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
220 Likewise.
221 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
222 Likewise.
223 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
224 Likewise.
225 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
226 Likewise.
227
228 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
229
230 * include/experimental/internet (network_v4::to_string()):
231 Remove lambda and use of resize_and_overwrite.
232
233 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
234
235 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
236 needed for newlocale.
237 * configure: Regenerate.
238 * src/c++26/text_encoding.cc: Use <xlocale.h>.
239
240 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
241 Ewan Higgs <ewan.higgs@gmail.com>
242
243 * include/bits/text_encoding-data.h: Regenerate.
244 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
245 containing "ASCII".
246 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
247
248 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
249
250 * doc/xml/manual/using.xml: Update tables of supported headers.
251 * doc/html/*: Regenerate.
252
253 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
254
255 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
256 -Wshift-count-overflow warning.
257
258 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
259
260 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
261 assertion and call test_format() from main.
262
263 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
264
265 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
266 _GLIBCXX_DEBUG_BACKTRACE macro.
267
268 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
269 Théo Papadopoulo <papadopoulo@gmail.com>
270
271 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
272 _M_before_begin check and cleanup implementation.
273
274 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
275
276 * testsuite/std/time/clock/file/io.cc: Fix expected result in
277 assertion and call test_format() from main.
278
279 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
280
281 PR libstdc++/113500
282 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
283 printing of subseconds with floating-point rep.
284 (__formatter_chrono::_M_format_to_ostream): Do not write
285 time_point specializations directly to the ostream.
286 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
287 empty chrono-spec if the type fails to meet the constraints for
288 writing to an ostream with operator<<.
289 * testsuite/std/time/clock/file/io.cc: Check formatting
290 non-integral times with empty chrono-specs.
291 * testsuite/std/time/clock/gps/io.cc: Likewise.
292 * testsuite/std/time/clock/utc/io.cc: Likewise.
293 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
294
295 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
296
297 * include/bits/chrono.h (__file_clock::from_sys)
298 (__file_clock::to_sys, __file_clock::_S_from_sys)
299 (__file_clock::_S_to_sys): Use common_type for return type.
300 * testsuite/std/time/clock/file/members.cc: Check round trip
301 conversion for time with lower precision that seconds.
302
303 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
304
305 PR libstdc++/113512
306 * include/std/format (__formatter_fp::format): Fix logic for
307 alternate forms.
308 * testsuite/std/format/functions/format.cc: Check buggy cases of
309 alternate forms with g presentation type.
310
311 2024-01-20 Marek Polacek <polacek@redhat.com>
312
313 PR c++/111410
314 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
315 std::ranges::views::__adaptor::operator|.
316
317 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
318
319 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
320 use CTAD for _Utf32_view.
321
322 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
323
324 PR libstdc++/108822
325 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
326 wrong fold-operator.
327 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
328 element and three elements. Check allocator-extended
329 constructors.
330
331 2024-01-19 Patrick Palka <ppalka@redhat.com>
332
333 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
334 <print> and <text_encoding> for C++23 and C++26 respectively.
335
336 2024-01-18 Patrick Palka <ppalka@redhat.com>
337
338 * include/bits/stl_pair.h [__cplusplus > 202002L]:
339 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
340
341 2024-01-18 Patrick Palka <ppalka@redhat.com>
342
343 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
344 changes with __cpp_lib_ranges_zip instead.
345
346 2024-01-18 Patrick Palka <ppalka@redhat.com>
347
348 PR libstdc++/109536
349 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
350 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
351 * include/debug/safe_iterator.h
352 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
353 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
354 (_Safe_iterator::operator=): Use them around the code path that
355 defines a variable of type __gnu_cxx::__scoped_lock.
356 (_Safe_iterator::operator++): Likewise.
357 (_Safe_iterator::operator--): Likewise.
358 (_Safe_iterator::operator+=): Likewise.
359 (_Safe_iterator::operator-=): Likewise.
360 * testsuite/23_containers/vector/element_access/constexpr.cc
361 (test_iterators): Test more iterator operations.
362 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
363 (test_iterators): Likewise.
364 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
365 Remove.
366
367 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
368
369 * include/bits/unicode.h (__charset_alias_match): Initialize
370 __var_a and __var_b.
371
372 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
373
374 PR libstdc++/113450
375 * testsuite/std/format/functions/format.cc: Use signed char
376 instead of int8_t.
377
378 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
379
380 PR libstdc++/113318
381 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
382 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
383 * config.h.in: Regenerate.
384 * configure: Regenerate.
385 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
386 * include/Makefile.am: Add new headers.
387 * include/Makefile.in: Regenerate.
388 * include/bits/locale_classes.h (locale::encoding): Declare new
389 member function.
390 * include/bits/unicode.h (__charset_alias_match): New function.
391 * include/bits/text_encoding-data.h: New file.
392 * include/bits/version.def (text_encoding): Define.
393 * include/bits/version.h: Regenerate.
394 * include/std/text_encoding: New file.
395 * src/Makefile.am: Add new subdirectory.
396 * src/Makefile.in: Regenerate.
397 * src/c++26/Makefile.am: New file.
398 * src/c++26/Makefile.in: New file.
399 * src/c++26/text_encoding.cc: New file.
400 * src/experimental/Makefile.am: Include c++26 convenience
401 library.
402 * src/experimental/Makefile.in: Regenerate.
403 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
404 printer.
405 * scripts/gen_text_encoding_data.py: New file.
406 * testsuite/22_locale/locale/encoding.cc: New test.
407 * testsuite/ext/unicode/charset_alias_match.cc: New test.
408 * testsuite/std/text_encoding/cons.cc: New test.
409 * testsuite/std/text_encoding/members.cc: New test.
410 * testsuite/std/text_encoding/requirements.cc: New test.
411
412 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
413
414 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
415 Do not use CTAD for _Utf32_view.
416 (__format_width, __truncate): Do not use CTAD.
417 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
418 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
419
420 2024-01-17 Patrick Palka <ppalka@redhat.com>
421
422 * include/std/ranges (views::_CartesianProduct::operator()):
423 Adjust identity case as per P2540R1.
424 * testsuite/std/ranges/cartesian_product/1.cc (test01):
425 Adjust expected result of the identity case.
426
427 2024-01-15 Patrick Palka <ppalka@redhat.com>
428
429 * include/std/variant (__detail::__variant::_Variadic_union):
430 Add bool __trivially_destructible template parameter.
431 (__detail::__variant::_Variadic_union::~_Variadic_union):
432 Use __trivially_destructible in constraints instead.
433 (__detail::__variant::_Variant_storage): Pass
434 __trivially_destructible value to _Variadic_union.
435
436 2024-01-15 Patrick Palka <ppalka@redhat.com>
437
438 * include/bits/stl_iterator.h (const_iterator): Define conversion
439 operators as per P2836R1.
440 * include/bits/version.def (ranges_as_const): Update value.
441 * include/bits/version.h: Regenerate.
442 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
443 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
444 value of __cpp_lib_ranges_as_const.
445 * testsuite/std/ranges/version_c++23.cc: Likewise.
446
447 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
448
449 PR libstdc++/108822
450 * include/std/tuple (__assignable, __is_nothrow_assignable):
451 Move pre-C++20 definitions adjacent to their use.
452
453 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
454
455 PR testsuite/113366
456 * include/std/format (basic_format_arg): Use __formattable
457 variable template instead of __format::__formattable_with
458 concept.
459
460 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
461
462 * src/c++20/tzdata.zi: Import new file from 2023d release.
463 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
464 Update expiry date for leap seconds list.
465
466 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
467
468 PR libstdc++/108822
469 * include/std/tuple (tuple): Add checks for dangling references.
470 Reimplement constraints and constant expressions using C++20
471 features.
472 * include/std/type_traits [C++20]
473 (__is_implicitly_default_constructible_v): Define.
474 (__is_implicitly_default_constructible): Use variable template.
475 * testsuite/20_util/tuple/dangling_ref.cc: New test.
476
477 2024-01-13 Patrick Palka <ppalka@redhat.com>
478
479 PR libstdc++/108827
480 PR libstdc++/111327
481 * include/bits/version.def (bind_back): Define.
482 * include/bits/version.h: Regenerate.
483 * include/std/functional (_Bind_back): Define for C++23.
484 (bind_back): Likewise.
485 * testsuite/20_util/function_objects/bind_back/1.cc: New test
486 (adapted from corresponding bind_front test).
487 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
488
489 2024-01-13 Patrick Palka <ppalka@redhat.com>
490
491 * include/std/functional (_Bind_front): Remove =default special
492 member function declarations.
493 (_Bind_front::operator()): Implement using C++23 deducing this
494 when available.
495 * testsuite/20_util/function_objects/bind_front/111327.cc:
496 Adjust testcase to expect better errors in C++23 mode.
497
498 2024-01-13 Patrick Palka <ppalka@redhat.com>
499
500 * include/std/ranges (views::__adaptor::operator|): Perform
501 perfect forwarding of arguments.
502 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
503 first argument to _Partial.
504 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
505 first parameter.
506 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
507 of arguments.
508 (to): Pass dummy first argument to _Partial.
509
510 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
511
512 PR libstdc++/107466
513 * include/bits/random.tcc (subtract_with_carry_engine::seed):
514 Implement proposed resolution of LWG 4014.
515 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
516 line number.
517 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
518 Check for expected result of 64-bit engine with seed that
519 doesn't fit in 32-bits.
520
521 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
522
523 PR libstdc++/113320
524 * include/std/format (__format::_Runtime_format_string): Add
525 constructor and disable copy operations.
526 (basic_format_string(_Runtime_format_string)): Add noexcept and
527 take parameter by value not rvalue reference.
528 (runtime_format): Add noexcept.
529 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
530 that construction is only possible from prvalues, not xvalues.
531
532 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
533
534 PR libstdc++/105505
535 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
536 default template arguments, as per P1951R1.
537 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
538
539 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
540
541 * include/std/format (__format::_Arg_store): Fix PR number in
542 comment. Simplify preprocessor code.
543
544 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
545
546 * doc/xml/manual/evolution.xml: Fix spelling.
547 * doc/html/manual/api.html: Regenerate.
548
549 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
550
551 * doc/xml/manual/evolution.xml: Document addition of
552 libstdc++exp.a.
553 * doc/html/*: Regenerate.
554
555 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
556
557 * libsupc++/eh_unex_handler.cc: Adjust definition type to
558 declaration.
559
560 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
561
562 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
563 duplicate definition.
564
565 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
566
567 PR libstdc++/112477
568 * src/c++11/debug.cc
569 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
570 sequence.
571 (_Safe_iterator_base::_M_attach_single): Likewise.
572 (_Safe_local_iterator_base::_M_attach): Likewise.
573 (_Safe_local_iterator_base::_M_attach_single): Likewise.
574 * testsuite/23_containers/map/debug/112477.cc: New test case.
575
576 2024-01-11 Patrick Palka <ppalka@redhat.com>
577
578 * include/bits/move.h (__like_t): Define in C++23 mode.
579 * include/std/ranges (views::__adaptor::Partial::operator()):
580 Implement using C++23 deducing this when available.
581 (views::__adaptor::_Pipe::operator()): Likewise.
582 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
583 accept new "no match for call" errors issued in C++23 mode.
584 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
585
586 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
587
588 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
589 Add printer for std::integral_constant.
590 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
591
592 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
593
594 PR libstdc++/113258
595 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
596 available.
597
598 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
599
600 * src/filesystem/ops-common.h (stat_type): Use using.
601
602 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
603
604 PR libstdc++/113250
605 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
606 * src/filesystem/ops.cc (fs::equivalent): Likewise.
607 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
608 error codes.
609 * testsuite/experimental/filesystem/operations/equivalent.cc:
610 Likewise.
611
612 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
613
614 * include/std/type_traits (is_compound): Do not use __not_.
615 (is_compound_v): Use is_fundamental_v instead.
616
617 2024-01-11 Patrick Palka <ppalka@redhat.com>
618
619 * include/bits/utility.h (_Nth_type): Use
620 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
621
622 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
623
624 * include/bits/unicode-data.h: Regenerate.
625 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
626 by one error.
627 (__incb_property): Add missing check for values before the
628 first edge.
629 (__is_extended_pictographic): Invert return values to fix
630 copy&pasted logic.
631 (_Grapheme_cluster_view::_Iterator): Remove second iterator
632 member and find end of cluster lazily.
633 * testsuite/ext/unicode/grapheme_view.cc: New test.
634 * testsuite/ext/unicode/properties.cc: New test.
635 * testsuite/ext/unicode/view.cc: New test.
636
637 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
638
639 * scripts/extract_symvers.in: Require final colon to only match
640 .dsynsym in the header of the dynamic symtab.
641
642 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
643
644 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
645 handling of string returned from std::format.
646 (__formatter_chrono::_M_R_T): Likewise.
647
648 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
649
650 * include/bits/unicode.h (__null_sentinel): Remove.
651 * testsuite/17_intro/names.cc: Add __null_sentinel.
652
653 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
654
655 * include/std/format (__format::_Runtime_format_string): Define
656 new class template.
657 (basic_format_string): Add non-consteval constructor for runtime
658 format strings.
659 (runtime_format): Define new function for C++26.
660 * testsuite/std/format/runtime_format.cc: New test.
661
662 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
663
664 * include/bits/chrono_io.h (__formatter_chrono): Always use
665 lvalue arguments to make_format_args.
666 * include/std/format (make_format_args): Change parameter pack
667 from forwarding references to lvalue references. Remove use of
668 remove_reference_t which is now unnecessary.
669 (format_to, formatted_size): Remove incorrect forwarding of
670 arguments.
671 * include/std/ostream (print): Remove forwarding of arguments.
672 * include/std/print (print): Likewise.
673 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
674 make_format_args.
675 * testsuite/std/format/arguments/args.cc: Likewise.
676 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
677 * testsuite/std/format/functions/format.cc: Likewise.
678 * testsuite/std/format/functions/vformat_to.cc: Likewise.
679 * testsuite/std/format/string.cc: Likewise.
680 * testsuite/std/time/day/io.cc: Likewise.
681 * testsuite/std/time/month/io.cc: Likewise.
682 * testsuite/std/time/weekday/io.cc: Likewise.
683 * testsuite/std/time/year/io.cc: Likewise.
684 * testsuite/std/time/year_month_day/io.cc: Likewise.
685 * testsuite/std/format/arguments/args_neg.cc: New test.
686
687 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
688
689 * include/Makefile.am: Add new headers.
690 * include/Makefile.in: Regenerate.
691 * include/bits/unicode.h: New file.
692 * include/bits/unicode-data.h: New file.
693 * include/std/format: Include <bits/unicode.h>.
694 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
695 (_Spec::_M_fill): Change type to char32_t.
696 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
697 instead of a single character.
698 (__write_padded): Change __fill_char parameter to char32_t and
699 encode it into the output.
700 (__formatter_str::format): Use new __unicode::__field_width and
701 __unicode::__truncate functions.
702 * include/std/ostream: Adjust namespace qualification for
703 __literal_encoding_is_utf8.
704 * include/std/print: Likewise.
705 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
706 * testsuite/ext/unicode/view.cc: New test.
707 * testsuite/std/format/functions/format.cc: Add missing examples
708 from the standard demonstrating alignment with non-ASCII
709 characters. Add examples checking correct handling of extended
710 grapheme clusters.
711
712 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
713
714 * include/bits/version.def (format_uchar): Define.
715 * include/bits/version.h: Regenerate.
716 * include/std/format (formatter<C, C>::format): Check for
717 _Pres_c and call _M_format_character directly. Cast C to its
718 unsigned equivalent for formatting as an integer.
719 (formatter<char, wchar_t>::format): Likewise.
720 (basic_format_arg(T&)): Store char arguments as unsigned char
721 for formatting to a wide string.
722 * testsuite/std/format/functions/format.cc: Adjust test. Check
723 formatting of
724
725 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
726
727 PR libstdc++/112997
728 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
729 parameter to void*.
730
731 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
732
733 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
734
735 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
736
737 * include/std/type_traits (is_trivially_destructible_v): Use
738 built-in directly when concepts are supported.
739 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
740 test.
741
742 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
743
744 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
745 nonnull arguments to strtoimax() and wcstoimax() functions.
746
747 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
748
749 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
750 size and check for overflows in arithmetic.
751 (path::operator/=(const path&)): Remove redundant exponential
752 growth calculation.
753
754 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
755
756 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
757 floating-point arithmetic.
758
759 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
760
761 PR libstdc++/113241
762 * include/std/type_traits (is_convertible_v): Guard use of
763 built-in with preprocessor check.
764
765 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
766
767 PR libstdc++/113200
768 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
769 __builtin_constant_p to check for unrelated pointers that cannot
770 be compared during constant evaluation.
771 * testsuite/21_strings/char_traits/requirements/113200.cc: New
772 test.
773
774 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
775
776 * include/std/chrono: Fix + and - for months and weekdays.
777 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
778 * testsuite/std/time/month/2.cc: New test for extreme values.
779 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
780 * testsuite/std/time/weekday/2.cc: New test for extreme values.
781
782 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
783
784 PR libstdc++/113099
785 * include/bits/locale_classes.tcc (__try_use_facet): Use
786 if-constexpr for C++11 and up.
787
788 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
789
790 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
791
792 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
793
794 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
795 reported by Will Hawkins <hawkinsw@obs.cr>.
796
797 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
798
799 * include/std/generator (_Stateless_alloc): Rename typename _A
800 to _All.
801
802 2024-01-03 Patrick Palka <ppalka@redhat.com>
803
804 PR testsuite/113175
805 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
806 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
807 (test03): Likewise.
808
809 \f
810 Copyright (C) 2024 Free Software Foundation, Inc.
811
812 Copying and distribution of this file, with or without modification,
813 are permitted in any medium without royalty provided the copyright
814 notice and this notice are preserved.