1 2024-01-15 Patrick Palka <ppalka@redhat.com>
3 * include/std/variant (__detail::__variant::_Variadic_union):
4 Add bool __trivially_destructible template parameter.
5 (__detail::__variant::_Variadic_union::~_Variadic_union):
6 Use __trivially_destructible in constraints instead.
7 (__detail::__variant::_Variant_storage): Pass
8 __trivially_destructible value to _Variadic_union.
10 2024-01-15 Patrick Palka <ppalka@redhat.com>
12 * include/bits/stl_iterator.h (const_iterator): Define conversion
13 operators as per P2836R1.
14 * include/bits/version.def (ranges_as_const): Update value.
15 * include/bits/version.h: Regenerate.
16 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
17 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
18 value of __cpp_lib_ranges_as_const.
19 * testsuite/std/ranges/version_c++23.cc: Likewise.
21 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
24 * include/std/tuple (__assignable, __is_nothrow_assignable):
25 Move pre-C++20 definitions adjacent to their use.
27 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
30 * include/std/format (basic_format_arg): Use __formattable
31 variable template instead of __format::__formattable_with
34 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
36 * src/c++20/tzdata.zi: Import new file from 2023d release.
37 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
38 Update expiry date for leap seconds list.
40 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
43 * include/std/tuple (tuple): Add checks for dangling references.
44 Reimplement constraints and constant expressions using C++20
46 * include/std/type_traits [C++20]
47 (__is_implicitly_default_constructible_v): Define.
48 (__is_implicitly_default_constructible): Use variable template.
49 * testsuite/20_util/tuple/dangling_ref.cc: New test.
51 2024-01-13 Patrick Palka <ppalka@redhat.com>
55 * include/bits/version.def (bind_back): Define.
56 * include/bits/version.h: Regenerate.
57 * include/std/functional (_Bind_back): Define for C++23.
58 (bind_back): Likewise.
59 * testsuite/20_util/function_objects/bind_back/1.cc: New test
60 (adapted from corresponding bind_front test).
61 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
63 2024-01-13 Patrick Palka <ppalka@redhat.com>
65 * include/std/functional (_Bind_front): Remove =default special
66 member function declarations.
67 (_Bind_front::operator()): Implement using C++23 deducing this
69 * testsuite/20_util/function_objects/bind_front/111327.cc:
70 Adjust testcase to expect better errors in C++23 mode.
72 2024-01-13 Patrick Palka <ppalka@redhat.com>
74 * include/std/ranges (views::__adaptor::operator|): Perform
75 perfect forwarding of arguments.
76 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
77 first argument to _Partial.
78 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
80 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
82 (to): Pass dummy first argument to _Partial.
84 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
87 * include/bits/random.tcc (subtract_with_carry_engine::seed):
88 Implement proposed resolution of LWG 4014.
89 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
91 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
92 Check for expected result of 64-bit engine with seed that
93 doesn't fit in 32-bits.
95 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
98 * include/std/format (__format::_Runtime_format_string): Add
99 constructor and disable copy operations.
100 (basic_format_string(_Runtime_format_string)): Add noexcept and
101 take parameter by value not rvalue reference.
102 (runtime_format): Add noexcept.
103 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
104 that construction is only possible from prvalues, not xvalues.
106 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
109 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
110 default template arguments, as per P1951R1.
111 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
113 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
115 * include/std/format (__format::_Arg_store): Fix PR number in
116 comment. Simplify preprocessor code.
118 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
120 * doc/xml/manual/evolution.xml: Fix spelling.
121 * doc/html/manual/api.html: Regenerate.
123 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
125 * doc/xml/manual/evolution.xml: Document addition of
127 * doc/html/*: Regenerate.
129 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
131 * libsupc++/eh_unex_handler.cc: Adjust definition type to
134 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
136 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
137 duplicate definition.
139 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
143 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
145 (_Safe_iterator_base::_M_attach_single): Likewise.
146 (_Safe_local_iterator_base::_M_attach): Likewise.
147 (_Safe_local_iterator_base::_M_attach_single): Likewise.
148 * testsuite/23_containers/map/debug/112477.cc: New test case.
150 2024-01-11 Patrick Palka <ppalka@redhat.com>
152 * include/bits/move.h (__like_t): Define in C++23 mode.
153 * include/std/ranges (views::__adaptor::Partial::operator()):
154 Implement using C++23 deducing this when available.
155 (views::__adaptor::_Pipe::operator()): Likewise.
156 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
157 accept new "no match for call" errors issued in C++23 mode.
158 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
160 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
162 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
163 Add printer for std::integral_constant.
164 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
166 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
169 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
172 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
174 * src/filesystem/ops-common.h (stat_type): Use using.
176 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
179 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
180 * src/filesystem/ops.cc (fs::equivalent): Likewise.
181 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
183 * testsuite/experimental/filesystem/operations/equivalent.cc:
186 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
188 * include/std/type_traits (is_compound): Do not use __not_.
189 (is_compound_v): Use is_fundamental_v instead.
191 2024-01-11 Patrick Palka <ppalka@redhat.com>
193 * include/bits/utility.h (_Nth_type): Use
194 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
196 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
198 * include/bits/unicode-data.h: Regenerate.
199 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
201 (__incb_property): Add missing check for values before the
203 (__is_extended_pictographic): Invert return values to fix
205 (_Grapheme_cluster_view::_Iterator): Remove second iterator
206 member and find end of cluster lazily.
207 * testsuite/ext/unicode/grapheme_view.cc: New test.
208 * testsuite/ext/unicode/properties.cc: New test.
209 * testsuite/ext/unicode/view.cc: New test.
211 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
213 * scripts/extract_symvers.in: Require final colon to only match
214 .dsynsym in the header of the dynamic symtab.
216 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
218 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
219 handling of string returned from std::format.
220 (__formatter_chrono::_M_R_T): Likewise.
222 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
224 * include/bits/unicode.h (__null_sentinel): Remove.
225 * testsuite/17_intro/names.cc: Add __null_sentinel.
227 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
229 * include/std/format (__format::_Runtime_format_string): Define
231 (basic_format_string): Add non-consteval constructor for runtime
233 (runtime_format): Define new function for C++26.
234 * testsuite/std/format/runtime_format.cc: New test.
236 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
238 * include/bits/chrono_io.h (__formatter_chrono): Always use
239 lvalue arguments to make_format_args.
240 * include/std/format (make_format_args): Change parameter pack
241 from forwarding references to lvalue references. Remove use of
242 remove_reference_t which is now unnecessary.
243 (format_to, formatted_size): Remove incorrect forwarding of
245 * include/std/ostream (print): Remove forwarding of arguments.
246 * include/std/print (print): Likewise.
247 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
249 * testsuite/std/format/arguments/args.cc: Likewise.
250 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
251 * testsuite/std/format/functions/format.cc: Likewise.
252 * testsuite/std/format/functions/vformat_to.cc: Likewise.
253 * testsuite/std/format/string.cc: Likewise.
254 * testsuite/std/time/day/io.cc: Likewise.
255 * testsuite/std/time/month/io.cc: Likewise.
256 * testsuite/std/time/weekday/io.cc: Likewise.
257 * testsuite/std/time/year/io.cc: Likewise.
258 * testsuite/std/time/year_month_day/io.cc: Likewise.
259 * testsuite/std/format/arguments/args_neg.cc: New test.
261 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
263 * include/Makefile.am: Add new headers.
264 * include/Makefile.in: Regenerate.
265 * include/bits/unicode.h: New file.
266 * include/bits/unicode-data.h: New file.
267 * include/std/format: Include <bits/unicode.h>.
268 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
269 (_Spec::_M_fill): Change type to char32_t.
270 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
271 instead of a single character.
272 (__write_padded): Change __fill_char parameter to char32_t and
273 encode it into the output.
274 (__formatter_str::format): Use new __unicode::__field_width and
275 __unicode::__truncate functions.
276 * include/std/ostream: Adjust namespace qualification for
277 __literal_encoding_is_utf8.
278 * include/std/print: Likewise.
279 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
280 * testsuite/ext/unicode/view.cc: New test.
281 * testsuite/std/format/functions/format.cc: Add missing examples
282 from the standard demonstrating alignment with non-ASCII
283 characters. Add examples checking correct handling of extended
286 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
288 * include/bits/version.def (format_uchar): Define.
289 * include/bits/version.h: Regenerate.
290 * include/std/format (formatter<C, C>::format): Check for
291 _Pres_c and call _M_format_character directly. Cast C to its
292 unsigned equivalent for formatting as an integer.
293 (formatter<char, wchar_t>::format): Likewise.
294 (basic_format_arg(T&)): Store char arguments as unsigned char
295 for formatting to a wide string.
296 * testsuite/std/format/functions/format.cc: Adjust test. Check
299 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
302 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
305 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
307 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
309 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
311 * include/std/type_traits (is_trivially_destructible_v): Use
312 built-in directly when concepts are supported.
313 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
316 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
318 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
319 nonnull arguments to strtoimax() and wcstoimax() functions.
321 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
323 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
324 size and check for overflows in arithmetic.
325 (path::operator/=(const path&)): Remove redundant exponential
328 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
330 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
331 floating-point arithmetic.
333 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
336 * include/std/type_traits (is_convertible_v): Guard use of
337 built-in with preprocessor check.
339 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
342 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
343 __builtin_constant_p to check for unrelated pointers that cannot
344 be compared during constant evaluation.
345 * testsuite/21_strings/char_traits/requirements/113200.cc: New
348 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
350 * include/std/chrono: Fix + and - for months and weekdays.
351 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
352 * testsuite/std/time/month/2.cc: New test for extreme values.
353 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
354 * testsuite/std/time/weekday/2.cc: New test for extreme values.
356 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
359 * include/bits/locale_classes.tcc (__try_use_facet): Use
360 if-constexpr for C++11 and up.
362 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
364 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
366 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
368 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
369 reported by Will Hawkins <hawkinsw@obs.cr>.
371 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
373 * include/std/generator (_Stateless_alloc): Rename typename _A
376 2024-01-03 Patrick Palka <ppalka@redhat.com>
379 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
380 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
384 Copyright (C) 2024 Free Software Foundation, Inc.
386 Copying and distribution of this file, with or without modification,
387 are permitted in any medium without royalty provided the copyright
388 notice and this notice are preserved.