]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
2
3 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
4 for freestanding.
5 * configure: Regenerate.
6
7 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
8
9 PR libstdc++/111238
10 * configure: Regenerate.
11 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
12 non-Canadian builds.
13
14 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
15
16 * testsuite/26_numerics/complex/literals/types.cc: Remove
17 dg-options and add target selector instead.
18
19 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
20
21 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
22 and qualify ambiguous calls to get.
23 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
24 expected result for std::pow(float, int) as per DR 550.
25
26 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
27
28 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
29 and add dg-warning for deprecation warnings.
30 * testsuite/20_util/auto_ptr/2.cc: Likewise.
31 * testsuite/20_util/auto_ptr/3.cc: Likewise.
32 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
33 * testsuite/20_util/auto_ptr/4.cc: Likewise.
34 * testsuite/20_util/auto_ptr/5.cc: Likewise.
35 * testsuite/20_util/auto_ptr/6.cc: Likewise.
36 * testsuite/20_util/auto_ptr/7.cc: Likewise.
37 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
38 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
39 Likewise.
40 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
41 Likewise.
42 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
43 Likewise.
44 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
45 Likewise.
46 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
47 Likewise.
48 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
49 Likewise.
50 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
51 Likewise.
52
53 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
54
55 PR libstdc++/26142
56 * testsuite/23_containers/vector/26412-1.cc: Moved to...
57 * testsuite/23_containers/vector/26142-1.cc: ...here.
58 * testsuite/23_containers/vector/26412-2.cc: Moved to...
59 * testsuite/23_containers/vector/26142-2.cc: ...here.
60
61 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
62
63 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
64 * testsuite/26_numerics/complex/56111.cc: Likewise.
65
66 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
67
68 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
69 Add dg-options to restrict the test to C++98 mode.
70 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
71 Likewise.
72
73 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
74
75 * testsuite/20_util/expected/bad.cc: Add missing target
76 selector.
77
78 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
79
80 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
81 expected errors.
82 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
83 Likewise.
84
85 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
86
87 * testsuite/27_io/filesystem/iterators/91067.cc: Add
88 -Wno-self-move to options.
89 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
90
91 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
92
93 PR libstdc++/110879
94 * include/bits/vector.tcc (_M_realloc_insert): End guard
95 lifetime just before assignment to class members.
96 (_M_default_append): Likewise.
97
98 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
99
100 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
101 Use __resize_and_overwrite to fill buffer.
102 (fs::read_symlink) [HAVE_READLINK]: Likewise.
103 * src/filesystem/ops-common.h (get_temp_directory_from_env)
104 [FILESYSTEM_IS_WINDOWS]: Likewise.
105
106 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
107
108 PR libstdc++/111077
109 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
110 Add _AtomicRef non-type template parameter and use a loop if it
111 is true.
112 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
113 (__atomic_impl::compare_exchange_strong): Likewise.
114 (atomic_ref::compare_exchange_weak): Use true for NTTP.
115 (atomic_ref::compare_exchange_strong): Use true for NTTP.
116 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
117 Fix test to not rely on atomic_ref::load() to return an object
118 with padding preserved.
119
120 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
121
122 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
123 filesystem support.
124
125 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
126
127 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
128 for POSIX readlink before using filesystem::read_symlink.
129
130 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
131
132 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
133 * configure: Regenerate.
134
135 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
136
137 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
138 early if invalid values are read when _M_need & _TimeOfDay is
139 non-zero.
140 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
141 parsed for "%H:%M".
142
143 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
144
145 PR libstdc++/111162
146 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
147 values are in range of year::min() to year::max().
148 * testsuite/std/time/parse.cc: Check out of range centuries.
149
150 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
151
152 * include/std/format (__format::_Sink::_M_reset): Change second
153 argument from iterator to offset.
154
155 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
156
157 PR libstdc++/111102
158 * testsuite/std/format/string.cc: Check wide character format
159 strings with out-of-range widths.
160
161 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
162
163 PR libstdc++/111102
164 * include/std/format (__format::__parse_integer): Check for
165 non-null pointer.
166
167 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
168
169 * testsuite/std/format/functions/format_to.cc: Avoid warning for
170 unused variables.
171
172 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
173
174 * include/std/atomic: Add comment to #ifdef and fix indentation.
175 * include/std/ostream: Check __glibcxx_syncbuf instead of
176 __cplusplus and _GLIBCXX_HOSTED.
177 * include/std/thread: Add comment to #ifdef.
178
179 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
180
181 * include/bits/version.def (__cpp_lib_ratio): Define.
182 * include/bits/version.h: Regenerate.
183 * include/std/ratio (quecto, ronto, yocto, zepto)
184 (zetta, yotta, ronna, quetta): Define.
185 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
186 dg-error line numbers.
187
188 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
189
190 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
191 printer class.
192 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
193
194 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
195
196 PR libstdc++/110944
197 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
198 not show template arguments.
199 (StdVariantPrinter): Likewise.
200 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
201 output.
202 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
203 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
204
205 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
206
207 * testsuite/util/replacement_memory_operators.h
208 (counter::scope): New, capture and reset counter count at construction and
209 restore it at destruction.
210 (counter::check_new): Add scope instantiation.
211 * testsuite/23_containers/unordered_map/96088.cc (main):
212 Add counter::scope instantiation.
213 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
214 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
215 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
216 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
217 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
218 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
219 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
220 (operator new(size_t)): Check started.
221 (main): Set/Unset started.
222 * testsuite/17_intro/no_library_allocation.cc: New test case.
223
224 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
225
226 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
227 Call std::set_terminate before throwing the nested exception.
228
229 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
230
231 PR target/111060
232 * include/std/format (formatter): Only define specializations
233 for 16-bit floating-point types for C++23.
234 * include/std/limits (numeric_limits): Likewise.
235
236 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
237
238 * include/bits/chrono_io.h (operator<<): Make uses of wide
239 strings with streams and std::format type-dependent on _CharT.
240 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
241 __to_wstring_numeric.
242
243 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
244
245 * include/bits/chrono_io.h (operator<<): Use __format_context.
246 * include/std/format (__format::__format_context): New alias
247 template.
248 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
249 Disable.
250
251 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
252
253 Revert:
254 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
255
256 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
257 double overload for long double if possible.
258
259 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
260
261 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
262 std::string_view.
263
264 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
265
266 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
267 double overload for long double if possible.
268
269 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
270
271 * src/c++98/localename.cc (is_C_locale): New function.
272 (locale::locale(const char*)): Use is_C_locale.
273
274 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
275
276 PR libstdc++/110945
277 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
278 Dispatch to _M_replace or move assignment from a temporary,
279 based on the iterator type.
280
281 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
282
283 * include/std/format (formatter): Add partial specializations
284 for extended floating-point types.
285 * testsuite/std/format/functions/format.cc: Move test_float128()
286 to ...
287 * testsuite/std/format/formatter/ext_float.cc: New test.
288
289 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
290
291 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
292 whenever __BFLT16_DIG__ is defined, not only for C++23.
293 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
294 (numeric_limits<_Float16>, numeric_limits<_Float32>)
295 (numeric_limits<_Float64>): Likewise for other extended
296 floating-point types.
297
298 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
299
300 * include/experimental/internet (address_v4::to_string): Remove
301 unused parameter name.
302
303 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
304
305 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
306 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
307 excess errors caused by invalid consteval calls.
308
309 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
310
311 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
312 (__units_suffix): Return a known suffix as string view, do not
313 write unknown suffixes to a buffer.
314 (__fmt_units_suffix): New function that formats the suffix using
315 std::format_to.
316 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
317 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
318
319 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
320
321 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
322 string formatters with this macro.
323 (__formatter_int::_M_format_int, __formatter_fp::format)
324 (formatter<const void*, C>::format): Use __to_wstring_numeric
325 instead of std::ctype::widen.
326 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
327 instead of std::ctype::widen.
328 * testsuite/std/format/functions/format.cc: Add more checks for
329 wstring formatting of arithmetic types.
330
331 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
332
333 * include/bits/basic_string.h (to_string(floating-point-type)):
334 Implement using std::to_chars for C++26.
335 * include/bits/version.def (__cpp_lib_to_string): Define.
336 * include/bits/version.h: Regenerate.
337 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
338 Adjust expected result in C++26 mode.
339 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
340 Likewise.
341 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
342 Likewise.
343 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
344 Likewise.
345 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
346 New test.
347 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
348 New test.
349 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
350 New test.
351
352 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
353
354 * include/bits/basic_string.h (to_string(integral-type)): Use
355 resize_and_overwrite when available.
356 (__to_wstring_numeric): New helper functions.
357 (to_wstring): Use std::to_string then __to_wstring_numeric.
358 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
359 Remove check for no excess capacity.
360
361 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
362
363 * include/bits/basic_string.h (__resize_and_overwrite): New
364 function.
365 * include/bits/basic_string.tcc (__resize_and_overwrite): New
366 function.
367 (resize_and_overwrite): Simplify by using reserve instead of
368 growing the string manually. Adjust for C++11 compatibility.
369 * include/bits/cow_string.h (resize_and_overwrite): New
370 function.
371 (__resize_and_overwrite): New function.
372 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
373 Do not depend on cxx11abi.
374 * include/bits/version.h: Regenerate.
375 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
376 Remove.
377 (__formatter_fp::format, __formatter_fp::_M_localize): Use
378 __resize_and_overwrite instead of _S_resize_and_overwrite.
379 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
380 Adjust for C++11 compatibility when included by ...
381 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
382 New test.
383
384 2023-08-17 Patrick Palka <ppalka@redhat.com>
385
386 * include/bits/regex.h (regex_iterator::iterator_concept):
387 Define for C++20 as per P2770R0.
388 (regex_token_iterator::iterator_concept): Likewise.
389 * include/std/ranges (__detail::__as_lvalue): Define.
390 (join_view::_Iterator): Befriend join_view.
391 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
392 instead of _M_outer.
393 (join_view::_Iterator::_M_get_outer): Define.
394 (join_view::_Iterator::_Iterator): Split constructor taking
395 _Parent argument into two as per P2770R0. Remove constraint on
396 default constructor.
397 (join_view::_Iterator::_M_outer): Make this data member present
398 only when the underlying range is forward.
399 (join_view::_Iterator::operator++): Use _M_get_outer instead of
400 _M_outer.
401 (join_view::_Iterator::operator--): Use __as_lvalue helper.
402 (join_view::_Iterator::operator==): Adjust constraints as per
403 P2770R0.
404 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
405 _M_outer.
406 (join_view::_M_outer): New data member when the underlying range
407 is non-forward.
408 (join_view::begin): Adjust definition as per P2770R0.
409 (join_view::end): Likewise.
410 (join_with_view::_M_outer_it): New data member when the
411 underlying range is non-forward.
412 (join_with_view::begin): Adjust definition as per P2770R0.
413 (join_with_view::end): Likewise.
414 (join_with_view::_Iterator::_M_outer_it): Make this data member
415 present only when the underlying range is forward.
416 (join_with_view::_Iterator::_M_get_outer): Define.
417 (join_with_view::_Iterator::_Iterator): Split constructor
418 taking _Parent argument into two as per P2770R0. Remove
419 constraint on default constructor.
420 (join_with_view::_Iterator::_M_update_inner): Adjust definition
421 as per P2770R0.
422 (join_with_view::_Iterator::_M_get_inner): Likewise.
423 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
424 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
425 (join_with_view::_Iterator::operator==): Adjust constraints
426 as per P2770R0.
427 (join_with_view::_Sentinel::operator==): Use _M_get_outer
428 instead of _M_outer_it.
429 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
430
431 2023-08-17 Patrick Palka <ppalka@redhat.com>
432
433 PR libstdc++/108827
434 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
435 Convert into a CRTP class template. Move hidden operator|
436 friends into namespace scope and adjust their constraints.
437 (__closure::__is_range_adaptor_closure_fn): Define.
438 (__closure::__is_range_adaptor_closure): Define.
439 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
440 (__adaptor::_Pipe): Likewise.
441 (views::_All): Likewise.
442 (views::_Join): Likewise.
443 (views::_Common): Likewise.
444 (views::_Reverse): Likewise.
445 (views::_Elements): Likewise.
446 (views::_Adjacent): Likewise.
447 (views::_AsRvalue): Likewise.
448 (views::_Enumerate): Likewise.
449 (views::_AsConst): Likewise.
450 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
451 expecting that adding empty range adaptor closure objects to a
452 pipeline doesn't increase the size of a pipeline.
453
454 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
455
456 * include/std/format (__format::_Pres_type): Add _Pres_F.
457 (__formatter_fp::parse): Use _Pres_F for 'F'.
458 (__formatter_fp::format): Set __upper for _Pres_F.
459 * testsuite/std/format/functions/format.cc: Check formatting of
460 infinity and NaN for each presentation type.
461
462 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
463
464 * include/Makefile.in: Regenerate.
465
466 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
467
468 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
469 * testsuite/std/format/functions/format.cc: Likewise.
470 * testsuite/std/format/functions/format_c++23.cc: Likewise.
471
472 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
473
474 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
475 any "-include bits/stdc++.h" from options and add the macro to
476 the existing options instead of replacing them.
477
478 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
479
480 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
481 the callable with the same size as resize_and_overwrite was
482 called with.
483 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
484 Check with small values for the new size.
485 * testsuite/std/format/functions/format.cc: Check wide
486 formatting of double values that produce small strings.
487 * testsuite/std/format/functions/format_c++23.cc: New test.
488
489 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
490
491 * include/bits/version.def (stds): Update value for C++23.
492 * include/bits/version.h: Regenerate.
493
494 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
495
496 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
497 Fix name of upstream file this was derived from.
498 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
499 Likewise.
500 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
501 Likewise.
502 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
503 Likewise.
504 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
505
506 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
507
508 * libsupc++/typeinfo: Switch to bits/version.h for
509 __cpp_lib_constexpr_typeinfo.
510 * libsupc++/new: Switch to bits/version.h for
511 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
512 (launder): Guard behind __cpp_lib_launder.
513 (hardware_destructive_interference_size)
514 (hardware_constructive_interference_size): Guard behind
515 __cpp_lib_hardware_interference_size.
516 * libsupc++/exception: Switch to bits/version.h for
517 __cpp_lib_uncaught_exceptions.
518 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
519 * libsupc++/compare: Switch to bits/version.h for
520 __cpp_lib_three_way_comparison.
521 (three_way_comparable, three_way_comparable_with)
522 (compare_three_way, weak_order, strong_order, partial_order):
523 Guard behind __cpp_lib_three_way_comparison >= 201907L.
524 * include/std/chrono: Drop __cpp_lib_chrono definition.
525 * include/std/vector: Switch to bits/version.h for
526 __cpp_lib_erase_if.
527 (erase, erase_if): Guard behind __cpp_lib_erase_if.
528 * include/std/variant: Switch to bits/version.h for
529 __cpp_lib_variant. Guard whole header behind that FTM.
530 * include/std/utility: Switch to bits/version.h for
531 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
532 __cpp_lib_{integer_comparison_functions,to_underlying}, and
533 __cpp_lib_unreachable.
534 (exchange): Guard behind __cpp_lib_exchange_function.
535 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
536 (cmp_greater_equal, in_range): Guard behind
537 __cpp_lib_integer_comparison_functions.
538 (to_underlying): Guard behind __cpp_lib_to_underlying.
539 (unreachable): Guard behind __cpp_lib_unreachable.
540 * include/std/type_traits: Switch to bits/version.h for
541 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
542 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
543 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
544 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
545 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
546 __cpp_lib_{type_identity,type_trait_variable_templates},
547 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
548 __cpp_lib_{bool_constant,bounded_array_traits}, and
549 __cpp_lib_has_unique_object_representations.
550 (integral_constant::operator()): Guard behind
551 __cpp_lib_integral_constant_callable.
552 (bool_constant): Guard behind __cpp_lib_bool_constant.
553 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
554 (negation_v): Guard behind __cpp_lib_logical_traits.
555 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
556 (is_final): Guard behind __cpp_lib_is_final.
557 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
558 __cpp_lib_is_nothrow_convertible.
559 (remove_const_t, remove_volatile_t, remove_cv_t)
560 (add_const_t, add_volatile_t, add_cv_t): Guard behind
561 __cpp_lib_transformation_trait_aliases.
562 (void_t): Guard behind __cpp_lib_void_t.
563 (is_swappable_with_v, is_nothrow_swappable_with_v)
564 (is_swappable_with, is_nothrow_swappable_with): Guard behind
565 __cpp_lib_is_swappable.
566 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
567 (is_invocable, invoke_result_t): Guard behind
568 __cpp_lib_is_invocable.
569 (alignment_of_v, extent_v, has_virtual_destructor_v)
570 (is_abstract_v, is_arithmetic_v, is_array_v)
571 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
572 (is_constructible_v, is_const_v, is_convertible_v)
573 (is_copy_assignable_v, is_copy_constructible_v)
574 (is_default_constructible_v, is_destructible_v)
575 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
576 (is_function_v, is_fundamental_v, is_integral_v)
577 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
578 (is_lvalue_reference_v, is_member_function_pointer_v)
579 (is_member_object_pointer_v, is_member_pointer_v)
580 (is_move_assignable_v, is_move_constructible_v)
581 (is_nothrow_assignable_v, is_nothrow_constructible_v)
582 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
583 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
584 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
585 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
586 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
587 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
588 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
589 (is_trivially_assignable_v, is_trivially_constructible_v)
590 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
591 (is_trivially_copy_constructible_v)
592 (is_trivially_default_constructible_v)
593 (is_trivially_destructible_v, is_trivially_move_assignable_v)
594 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
595 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
596 Guard behind __cpp_lib_type_trait_variable_templates.
597 (has_unique_object_representations)
598 (has_unique_object_representations_v): Guard behind
599 __cpp_lib_has_unique_object_representation.
600 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
601 (remove_cvref, remove_cvref_t): Guard behind
602 __cpp_lib_remove_cvref.
603 (type_identity, type_identity_t): Guard behind
604 __cpp_lib_type_identity.
605 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
606 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
607 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
608 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
609 (is_scoped_enum, is_scoped_enum_v): Guard behind
610 __cpp_lib_is_scoped_enum.
611 (reference_constructs_from_temporary)
612 (reference_constructs_from_temporary_v): Guard behind
613 __cpp_lib_reference_from_temporary.
614 * include/std/tuple: Switch to bits/version.h for
615 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
616 (get<T>): Guard behind __cpp_lib_tuple_by_type.
617 (apply): Guard behind __cpp_lib_apply.
618 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
619 * include/std/syncstream: Switch to bits/version.h for
620 __cpp_lib_syncbuf. Guard header behind that FTM.
621 * include/std/string_view: Switch to bits/version.h for
622 __cpp_lib_{string_{view,contains},constexpr_string_view} and
623 __cpp_lib_starts_ends_with.
624 (basic_string_view::starts_with, basic_string_view::ends_with):
625 Guard behind __cpp_lib_starts_ends_with.
626 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
627 Assert as impossible ithout a bug in C++23.
628 * include/std/string: Switch to bits/version.h for
629 __cpp_lib_erase_if.
630 (erase, erase_if): Guard behind __cpp_lib_erase_if.
631 * include/std/thread: Switch to bits/version.h for
632 __cpp_lib_jthread.
633 * include/std/stop_token: Switch to bits/version.h for
634 __cpp_lib_jthread.
635 * include/std/spanstream: Switch to bits/version.h for
636 __cpp_lib_spanstream. Guard header behind that FTM.
637 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
638 Guard header behind that FTM.
639 * include/std/source_location: Switch to bits/version.h for
640 __cpp_lib_source_location. Guard header with that FTM.
641 * include/std/shared_mutex: Switch to bits/version.h for
642 __cpp_lib_shared{,_timed}_mutex.
643 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
644 * include/std/semaphore: Switch to bits/version.h for
645 __cpp_lib_semaphore. Guard header behind that FTM.
646 * include/std/ranges: Switch to bits/version.h for
647 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
648 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
649 and __cpp_lib_ranges_{as_const,enumerate,iota}.
650 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
651 (ranges::chunk_by et al, ranges::join_with et al)
652 (ranges::stride et al, ranges::cartesian_product et al)
653 (ranges::as_rvalue et al, ranges::as_const et al)
654 (ranges::enumerate et al): Guard behind appropriate FTM.
655 * include/std/optional: Switch to bits/version.h for
656 __cpp_lib_optional. Guard header behind that FTM.
657 * include/std/numeric: Switch to bits/version.h for
658 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
659 and __cpp_lib_parallel_algorithm.
660 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
661 (midpoint): Guard behind __cpp_lib_interpolate.
662 * include/std/numbers: Switch to bits/version.h for
663 __cpp_lib_math_constants. Guard header behind that FTM.
664 * include/std/mutex: Switch to bits/version.h for
665 __cpp_lib_scoped_lock.
666 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
667 * include/std/memory_resource: Switch to bits/version.h for
668 __cpp_lib_{polymorphic_allocator,memory_resource}.
669 (synchronized_pool_resource): Guard behind
670 __cpp_lib_memory_resource >= 201603L.
671 (polymorphic_allocator): Guard behind
672 __cpp_lib_polymorphic_allocator.
673 * include/std/memory: Switch to bits/version.h for
674 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
675 * include/std/list: Switch to bits/version.h for
676 __cpp_lib_erase_if.
677 (erase, erase_if): Guard behind __cpp_lib_erase_if.
678 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
679 Guard header behind that FTM.
680 * include/std/iterator: Switch to bits/version.h for
681 __cpp_lib_null_iterators.
682 * include/std/iomanip: Switch to bits/version.h for
683 __cpp_lib_quoted_string_io.
684 (quoted): Guard behind __cpp_lib_quoted_string_io.
685 * include/std/functional: Switch to bits/version.h for
686 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
687 __cpp_lib_{not_fn,booyer_moore_searcher}.
688 (invoke): Guard behind __cpp_lib_invoke.
689 (invoke_r): Guard behind __cpp_lib_invoke_r.
690 (bind_front): Guard behind __cpp_lib_bind_front.
691 (not_fn): Guard behind __cpp_lib_not_fn.
692 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
693 definition behind __cpp_lib_boyer_moore_searcher.
694 * include/std/forward_list: Switch to bits/version.h for
695 __cpp_lib_erase_if.
696 (erase, erase_if): Guard behind __cpp_lib_erase_if.
697 * include/std/format: Switch to bits/version.h for
698 __cpp_lib_format. Guard header behind that FTM.
699 * include/std/filesystem: Switch to bits/version.h for
700 __cpp_lib_filesystem. Guard header behind that FTM.
701 * include/std/expected: Switch to bits/version.h for
702 __cpp_lib_expected. Guard header behind it.
703 * include/std/execution: Switch to bits/version.h for
704 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
705 either.
706 * include/std/deque: Switch to bits/version.h for
707 __cpp_lib_erase_if.
708 (erase, erase_if): Guard behind __cpp_lib_erase_if.
709 * include/std/coroutine: Switch to bits/version.h for
710 __cpp_lib_coroutine. Guard header behind that FTM.
711 * include/std/concepts: Switch to bits/version.h for
712 __cpp_lib_concepts. Guard header behind that FTM.
713 * include/std/complex: Switch to bits/version.h for
714 __cpp_lib_{complex_udls,constexpr_complex}.
715 (operator""if, operator""i, operator""il): Guard behind
716 __cpp_lib_complex_udls.
717 * include/std/charconv: Swtich to bits/version.h for
718 __cpp_lib_{to_chars,constexpr_charconv}.
719 * include/std/bitset: Switch to bits/version.h for
720 __cpp_lib_constexpr_bitset.
721 * include/std/bit: Switch to bits/version.h for
722 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
723 (bit_cast): Guard behind __cpp_lib_bit_cast.
724 (byteswap): Guard behind __cpp_lib_byteswap.
725 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
726 (popcount): Guard behind __cpp_lib_bitops.
727 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
728 __cpp_lib_int_pow2.
729 (endian): Guard behind __cpp_lib_endian.
730 * include/std/barrier: Switch to bits/version.h for
731 __cpp_lib_barrier. Guard header behind that FTM.
732 * include/std/atomic: Switch to bits/version.h for
733 __cpp_lib_atomic_{is_always_lock_free,float,ref}
734 and __cpp_lib_lock_free_type_aliases.
735 (*::is_always_lock_free): Guard behind
736 __cpp_lib_atomic_is_always_lock_free.
737 (atomic<float>): Guard behind __cpp_lib_atomic_float.
738 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
739 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
740 __cpp_lib_atomic_lock_free_type_aliases.
741 * include/std/array: Switch to bits/version.h for
742 __cpp_lib_to_array.
743 (to_array): Guard behind __cpp_lib_to_array.
744 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
745 Guard header behind that FTM.
746 * include/std/algorithm: Switch to bits/version.h for
747 __cpp_lib_parallel_algorithm.
748 * include/c_global/cstddef: Switch to bits/version.h for
749 __cpp_lib_byte.
750 (byte): Guard behind __cpp_lib_byte.
751 * include/c_global/cmath: Switch to bits/version.h for
752 __cpp_lib_{hypot,interpolate}.
753 (hypot3): Guard behind __cpp_lib_hypot.
754 (lerp): Guard behind __cpp_lib_interpolate.
755 * include/c_compatibility/stdatomic.h: Switch to
756 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
757 FTM.
758 * include/bits/utility.h: Switch to bits/version.h for
759 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
760 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
761 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
762 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
763 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
764 * include/bits/unordered_map.h: Switch to bits/version.h for
765 __cpp_lib_unordered_map_try_emplace.
766 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
767 * include/bits/unique_ptr.h: Switch to bits/version.h for
768 __cpp_lib_{constexpr_memory,make_unique}.
769 (make_unique): Guard behind __cpp_lib_make_unique.
770 * include/bits/stl_vector.h: Switch to bits/version.h for
771 __cpp_lib_constexpr_vector.
772 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
773 __cpp_lib_raw_memory_algorithms.
774 (uninitialized_default_construct)
775 (uninitialized_default_construct_n, uninitialized_move)
776 (uninitialized_move_n, uninitialized_value_construct)
777 (uninitialized_value_construct_n): Guard behind
778 __cpp_lib_raw_memory_algorithms.
779 * include/bits/stl_tree.h: Switch to bits/version.h for
780 __cpp_lib_generic_associative_lookup.
781 * include/bits/stl_stack.h: Switch to bits/version.h for
782 __cpp_lib_adaptor_iterator_pair_constructor.
783 (stack): Guard iterator-pair constructor behind
784 __cpp_lib_adaptor_iterator_pair_constructor.
785 * include/bits/stl_queue.h: Switch to bits/version.h for
786 __cpp_lib_adaptor_iterator_pair_constructor.
787 (queue): Guard iterator-pair constructor behind
788 __cpp_lib_adaptor_iterator_pair_constructor.
789 * include/bits/stl_pair.h: Switch to bits/version.h for
790 __cpp_lib_{concepts,tuples_by_type}.
791 (get): Guard type-getting overloads behind
792 __cpp_lib_tuples_by_type.
793 * include/bits/stl_map.h: Switch to bits/version.h for
794 __cpp_lib_map_try_emplace.
795 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
796 * include/bits/stl_list.h: Switch to bits/version.h for
797 __cpp_lib_list_remove_return_type.
798 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
799 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
800 * include/bits/stl_iterator.h: Switch to bits/version.h for
801 __cpp_lib_{constexpr_iterator,array_constexpr} and
802 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
803 (make_reverse_iterator): Guard behind
804 __cpp_lib_make_reverse_iterator.
805 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
806 changes behind that FTM.
807 * include/bits/stl_function.h: Switch to bits/version.h for
808 __cpp_lib_transparent_operators.
809 (equal_to, not_equal_to, greater, less, greater_equal)
810 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
811 (logical_or, logical_not, plus, minus, multiplies, divides)
812 (modulus, negate): Guard '= void' fwdecls behind
813 __cpp_lib_transparent_operators.
814 (plus<void>, minus<void>, multiplies<void>, divides<void>)
815 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
816 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
817 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
818 (greater_equal<void>, less_equal<void>, bit_not<void>)
819 (__has_is_transparent): Guard behind
820 __cpp_lib_transparent_operators.
821 * include/bits/stl_algobase.h: Switch to bits/version.h for
822 __cpp_lib_robust_nonmodifying_seq_ops.
823 (robust equal, mismatch): Guard behind
824 __cpp_lib_nonmember_container_access.
825 * include/bits/stl_algo.h: Swtich to bits/version.h for
826 __cpp_lib_{clamp,sample}.
827 (clamp): Guard behind __cpp_lib_clamp.
828 (sample): Guard behind __cpp_lib_sample.
829 * include/bits/specfun.h: Switch to bits/version.h for
830 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
831 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
832 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
833 (_Sp_overwrite_tag): Guard behind
834 __cpp_lib_smart_ptr_for_overwrite.
835 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
836 __cpp_lib_atomic_shared_ptr.
837 * include/bits/shared_ptr.h: Switch to bits/version.h for
838 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
839 (shared_ptr<T>::weak_type): Guard behind
840 __cpp_lib_shared_ptr_weak_type.
841 (enable_shared_from_this<T>::weak_from_this): Guard behind
842 __cpp_lib_enable_shared_from_this.
843 * include/bits/ranges_cmp.h: Switch to bits/version.h for
844 __cpp_lib_ranges.
845 * include/bits/ranges_algo.h: Switch to bits/version.h for
846 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
847 * include/bits/range_access.h: Switch to bits/version.h for
848 __cpp_lib_nonmember_container_access
849 (size, empty, data): Guard behind
850 __cpp_lib_nonmember_container_access.
851 (ssize): Guard behind __cpp_lib_ssize.
852 * include/bits/ptr_traits.h: Switch to bits/version.h. for
853 __cpp_lib_{constexpr_memory,to_address}.
854 (to_address): Guard behind __cpp_lib_to_address.
855 * include/bits/node_handle.h: Switch to bits/version.h for
856 __cpp_lib_node_extract. Guard header behind that FTM.
857 * include/bits/move_only_function.h: Switch to bits/version.h for
858 __cpp_lib_move_only_function. Guard header behind that FTM.
859 * include/bits/move.h: Switch to bits/version.h for
860 __cpp_lib_addressof_constexpr.
861 * include/bits/ios_base.h: Switch to bits/version.h for
862 __cpp_lib_ios_noreplace.
863 (noreplace): Guard with __cpp_lib_ios_noreplace.
864 * include/bits/hashtable.h: Switch to bits/version.h for
865 __cpp_lib_generic_unordered_lookup.
866 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
867 __cpp_lib_generic_unordered_lookup.
868 * include/bits/forward_list.h: Switch to bits/version.h for
869 __cpp_lib_list_remove_return_type.
870 (__remove_return_type): Guard behind
871 __cpp_lib_list_remove_return_type.
872 * include/bits/erase_if.h: Switch to bits/version.h for
873 __cpp_lib_erase_if.
874 * include/bits/cow_string.h: Switch to bits/version.h for
875 __cpp_lib_constexpr_string.
876 * include/bits/chrono.h: Swtich to bits/version.h for
877 __cpp_lib_chrono{,_udls}.
878 (ceil): Guard behind __cpp_lib_chrono.
879 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
880 * include/bits/char_traits.h: Switch to bits/version.h for
881 __cpp_lib_constexpr_char_traits.
882 * include/bits/basic_string.h: Switch to bits/version.h for
883 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
884 (resize_and_overwrite): Guard behind
885 __cpp_lib_string_resize_and_overwrite.
886 (operator""s): Guard behind __cpp_lib_string_udls.
887 * include/bits/atomic_wait.h: Switch to bits/version.h for
888 __cpp_lib_atomic_wait. Guard header behind that FTM.
889 * include/bits/atomic_base.h: Switch to bits/version.h for
890 __cpp_lib_atomic_value_initialization and
891 __cpp_lib_atomic_flag_test.
892 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
893 rather than C++20.
894 * include/bits/allocator.h: Switch to bits/version.h for
895 __cpp_lib_incomplete_container_elements.
896 * include/bits/alloc_traits.h: Switch to using bits/version.h for
897 __cpp_lib_constexpr_dynamic_alloc and
898 __cpp_lib_allocator_traits_is_always_equal.
899 * include/bits/align.h: Switch to bits/version.h for defining
900 __cpp_lib_assume_aligned.
901 (assume_aligned): Guard with __cpp_lib_assume_aligned.
902 * include/bits/algorithmfwd.h: Switch to bits/version.h for
903 defining __cpp_lib_constexpr_algorithms.
904 * include/std/stacktrace: Switch to bits/version.h for
905 __cpp_lib_stacktrace. Guard header behind that FTM.
906 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
907 Update line numbers.
908
909 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
910
911 * include/Makefile.am (bits_freestanding): Add version.h.
912 (allcreated): Add version.h.
913 (${bits_srcdir}/version.h): New rule. Regenerates
914 version.h out of version.{def,tpl}.
915 * include/Makefile.in: Regenerate.
916 * include/bits/version.def: New file. Declares a list of
917 all feature test macros, their values and their preconditions.
918 * include/bits/version.tpl: New file. Turns version.def
919 into a sequence of #if blocks.
920 * include/bits/version.h: New file. Generated from
921 version.def.
922 * include/std/version: Replace with a __glibcxx_want_all define
923 and bits/version.h include.
924
925 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
926
927 PR libstdc++/110860
928 * include/std/format (__formatter_fp::format): Use frexp instead
929 of log10.
930
931 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
932
933 * include/std/type_traits (true_type): Use __bool_constant
934 instead.
935 (false_type): Likewise.
936 (bool_constant): Likewise.
937
938 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
939
940 PR libstdc++/110990
941 * include/std/format (_Seq_sink::get): Only call _M_overflow if
942 its precondition is met.
943 (_Iter_sink::_M_finish): Likewise.
944 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
945 internal buffer after running out of space.
946 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
947 (_Counting_sink::count): Likewise.
948 * testsuite/std/format/functions/format_to_n.cc: Check cases
949 where the output fits into the buffer.
950
951 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
952
953 PR libstdc++/104167
954 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
955 to _ChronoParts operators.
956 (from_stream, parse): Define new functions.
957 (__detail::_Parse, __detail::_Parser): New class templates.
958 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
959 C++20.
960 * include/std/version (__cpp_lib_chrono): Likewise.
961 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
962 Adjust expected value of feature test macro.
963 * testsuite/20_util/duration/io.cc: Test parsing.
964 * testsuite/std/time/clock/file/io.cc: Likewise.
965 * testsuite/std/time/clock/gps/io.cc: Likewise.
966 * testsuite/std/time/clock/system/io.cc: Likewise.
967 * testsuite/std/time/clock/tai/io.cc: Likewise.
968 * testsuite/std/time/clock/utc/io.cc: Likewise.
969 * testsuite/std/time/day/io.cc: Likewise.
970 * testsuite/std/time/month/io.cc: Likewise.
971 * testsuite/std/time/month_day/io.cc: Likewise.
972 * testsuite/std/time/weekday/io.cc: Likewise.
973 * testsuite/std/time/year/io.cc: Likewise.
974 * testsuite/std/time/year_month/io.cc: Likewise.
975 * testsuite/std/time/year_month_day/io.cc: Likewise.
976 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
977 the existence of parse and from_stream in namespace chrono.
978 * testsuite/std/time/clock/local/io.cc: New test.
979 * testsuite/std/time/parse.cc: New test.
980
981 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
982
983 PR libstdc++/110860
984 * include/std/format (__formatter_fp::format): Do not call log10
985 with zero values.
986
987 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
988
989 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
990 Check for out-of-range month an weekday indices.
991 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
992 month and weekday values.
993
994 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
995
996 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
997
998 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
999
1000 PR libstdc++/110974
1001 * include/std/format (_Spec::_S_parse_width_or_precision): Check
1002 for empty range before dereferencing iterator.
1003 * testsuite/std/format/string.cc: Check for expected exception.
1004 Fix expected exception message in test_pr110862() and actually
1005 call it.
1006
1007 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
1008
1009 PR libstdc++/110968
1010 * include/std/format (__formatter_fp::format): Check return
1011 value of _M_localize.
1012 * testsuite/std/format/functions/format.cc: Check classic
1013 locale.
1014
1015 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
1016
1017 PR libstdc++/110970
1018 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
1019 __iter_category_t.
1020 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
1021 (__detail::__basic_const_iterator_iter_cat): Likewise.
1022 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
1023 Rename to __iter_category_t.
1024
1025 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1026
1027 * include/bits/chrono.h (duration_cast): Do not use braces
1028 around statements for C++11 constexpr rules.
1029 * include/bits/stl_algobase.h (__lg): Rewrite as a single
1030 statement for C++11 constexpr rules.
1031 * include/experimental/bits/fs_path.h (path::string): Use
1032 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
1033 * include/std/charconv (__to_chars_8): Initialize variable for
1034 C++17 constexpr rules.
1035
1036 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1037
1038 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
1039 warning for loop condition.
1040
1041 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1042
1043 * include/std/complex: Add diagnostic pragma for clang.
1044
1045 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1046
1047 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
1048 to struct.
1049 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
1050 class-head to struct in friend declaration.
1051 * include/std/chrono (tzdb_list::_Node): Likewise.
1052 * include/std/future (_Task_state_base, _Task_state): Likewise.
1053 * include/std/scoped_allocator (__inner_type_impl): Likewise.
1054 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
1055 (_ValFunClos, _RefFunClos): Change class-head to struct.
1056
1057 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1058
1059 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
1060 attribute.
1061 * include/bits/regex_executor.tcc: Remove name of unused
1062 parameter.
1063 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
1064 Likewise.
1065 * include/bits/stl_uninitialized.h: Likewise.
1066 * include/bits/streambuf_iterator.h (operator==): Likewise.
1067 * include/bits/uses_allocator.h: Likewise.
1068 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
1069 * include/std/chrono (zoned_time): Likewise.
1070 * include/std/future (__future_base::_S_allocate_result):
1071 Likewise.
1072 (packaged_task): Likewise.
1073 * include/std/optional (_Optional_payload_base): Likewise.
1074 * include/std/scoped_allocator (__inner_type_impl): Likewise.
1075 * include/std/tuple (_Tuple_impl): Likewise.
1076
1077 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1078
1079 * include/bits/new_allocator.h (__new_allocator): Define copy
1080 assignment operator as defaulted.
1081 * include/std/complex (complex<float>, complex<double>)
1082 (complex<long double>): Define copy constructor as defaulted.
1083
1084 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
1085
1086 * include/std/format: Fix some warnings.
1087 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
1088 unused function template.
1089
1090 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1091
1092 PR libstdc++/110860
1093 * include/std/format (__formatter_fp::format): Do not use
1094 __builtin_abs and __builtin_log10 with arbitrary floating-point
1095 types.
1096
1097 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1098
1099 PR libstdc++/110917
1100 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
1101 Constrain partial specialization for contiguous iterators to
1102 require the value type to be CharT.
1103 * testsuite/std/format/functions/format_to.cc: New test.
1104
1105 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
1106
1107 PR libstdc++/110862
1108 * include/std/format (_Scanner::_M_on_replacement_field):
1109 Check for expected '}' before incrementing iterator.
1110 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
1111
1112 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1113
1114 * configure: Regenerate.
1115
1116 2023-08-07 Alan Modra <amodra@gmail.com>
1117
1118 * configure: Regenerate.
1119
1120 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
1121
1122 * configure: Regenerate.
1123
1124 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1125
1126 * configure: Regenerate.
1127
1128 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
1129
1130 * configure: Regenerate.
1131
1132 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
1133
1134 * configure: Regenerate.
1135
1136 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
1137
1138 * configure: Regenerate.
1139
1140 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
1141
1142 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
1143 symbol export.
1144
1145 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
1146
1147 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
1148 proper #error.
1149 * src/c++11/locale-inst-monetary.h: Likewise.
1150 * src/c++11/locale-inst-numeric.h: Likewise.
1151
1152 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
1153
1154 PR libstdc++/108046
1155 * include/std/format (__formatter_fp::format): Ensure __expc is
1156 always set for all presentation types. Set __z correctly for
1157 zero precision.
1158 * testsuite/std/format/functions/format.cc: Check problem cases.
1159
1160 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1161
1162 PR libstdc++/110807
1163 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
1164
1165 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1166
1167 PR libstdc++/110807
1168 * include/bits/stl_bvector.h (vector(const vector&)): Access
1169 iterators before allocating.
1170 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
1171 Likewise.
1172 * testsuite/23_containers/vector/bool/110807.cc: New test.
1173
1174 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
1175
1176 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
1177 attribute.
1178 * include/bits/stl_algo.h (random_shuffle): Correct comments.
1179 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
1180 deprecated warnings.
1181 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1182 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1183 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
1184 test.
1185
1186 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
1187
1188 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
1189 locations.
1190 * testsuite/26_numerics/gcd/105844.cc: Likewise.
1191 * testsuite/26_numerics/lcm/105844.cc: Likewise.
1192
1193 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
1194
1195 * include/std/format (_Formatting_scanner::_M_on_chars): Add
1196 missing constexpr specifier.
1197 (_Formatting_scanner::_M_format_arg): Likewise.
1198
1199 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
1200
1201 PR libstdc++/110653
1202 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
1203 throw an exception for zero result.
1204 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
1205
1206 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1207
1208 PR libstdc++/110077
1209 * src/c++17/floating_from_chars.cc (from_chars): Only define
1210 _Float128 overload when using __strfromf128.
1211
1212 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1213
1214 PR libstdc++/110593
1215 * include/bits/chrono.h (duration): Improve static assert
1216 messages.
1217 (__is_ratio): Move to ...
1218 * include/std/ratio (__is_ratio): ... here.
1219 (__is_ratio_v): New variable template and partial
1220 specialization.
1221 (__are_both_ratios): New function template.
1222 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
1223 Add static assertion.
1224 * testsuite/20_util/ratio/requirements/type_constraints.cc:
1225 New test.
1226 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
1227 Adjust expected error.
1228 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
1229 Likewise.
1230
1231 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1232
1233 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
1234 Do not set __is_neg for hh_mm_ss before calling
1235 _M_format_to_ostream. Change __print_sign lambda to only check
1236 __is_neg for durations and hh_mm_ss types.
1237 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
1238 for duration types.
1239 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
1240
1241 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1242
1243 PR libstdc++/110719
1244 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
1245 Handle duration and hh_mm_ss.
1246 * testsuite/20_util/duration/io.cc: Check locale-specific
1247 formats.
1248 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1249
1250 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1251
1252 * include/std/format (__write_padded): Initialize first element
1253 of array to avoid a -Wmaybe-uninitialized warning.
1254
1255 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1256
1257 PR libstdc++/110719
1258 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
1259 allowed modifiers for %z and %Z. Fix -Wparentheses and
1260 -Wnarrowing warnings.
1261 (__formatter_chrono::_M_format): Call new functions for %d, %e,
1262 %H, %I, %m and %M.
1263 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
1264 subsecond precision.
1265 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
1266 modifiers.
1267 (__formatter_chrono::_M_e): Replace with _M_d_e and use
1268 _M_locale_fmt.
1269 (__formatter_chrono::_M_I): Replace with _M_H_I and use
1270 _M_locale_fmt.
1271 (__formatter_chrono::_M_m): New function.
1272 (__formatter_chrono::_M_M): New function.
1273 (__formatter_chrono::_M_r): Use _M_locale_fmt.
1274 (__formatter_chrono::_M_S): Likewise.
1275 (__formatter_chrono::_M_u_w): Likewise.
1276 (__formatter_chrono::_M_U_V_W): Likewise.
1277 (__formatter_chrono::_M_X): Use _S_floor_seconds.
1278 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
1279 (__formatter_chrono::_S_altnum): Remove function.
1280 (__formatter_chrono::_S_dd_zero_fill): Remove function.
1281 (__formatter_chrono::_S_floor_seconds): New function.
1282 (__formatter_chrono::_M_locale_fmt): New function.
1283 * testsuite/std/time/clock/system/io.cc: Adjust expected output
1284 for locale-specific formats and check modified formats.
1285 * testsuite/std/time/clock/utc/io.cc: Likewise.
1286 * testsuite/std/time/zoned_time/io.cc: New test.
1287
1288 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1289
1290 PR libstdc++/110708
1291 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
1292 allow a single modifier.
1293 * testsuite/std/time/format.cc: Check multiple modifiers.
1294
1295 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1296
1297 PR libstdc++/110653
1298 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
1299 Remove dg-require-string-conversions.
1300 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
1301 Likewise.
1302 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
1303 Likewise.
1304 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
1305 Likewise.
1306 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
1307 Likewise.
1308
1309 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1310
1311 PR libstdc++/110653
1312 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
1313 Define in terms of std::stod.
1314
1315 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1316
1317 PR libstdc++/110653
1318 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
1319 Define.
1320 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
1321 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
1322 Declare in namespace std.
1323 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
1324
1325 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
1326
1327 PR libstdc++/110653
1328 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
1329 depend on _GLIBCXX_USE_C99_STDLIB.
1330 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
1331 in terms of stol and stoul respectively.
1332 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
1333 of stod.
1334
1335 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1336
1337 PR libstdc++/95048
1338 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
1339 conversions to wide strings.
1340 * testsuite/experimental/filesystem/path/construct/95048.cc:
1341 Likewise.
1342
1343 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1344
1345 * config/io/basic_file_stdio.cc: Define LFS macros.
1346 (__basic_file<char>::open): Use fopen unconditionally.
1347 (get_file_offset): Use lseek unconditionally.
1348 (__basic_file<char>::seekoff): Likewise.
1349 (__basic_file<char>::showmanyc): Use fstat unconditionally.
1350
1351 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1352
1353 PR libstdc++/110574
1354 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
1355 and define _GLIBCXX_USE_FSEEKO_FTELLO.
1356 * config.h.in: Regenerate.
1357 * configure: Regenerate.
1358 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
1359 Check for fwrite error correctly.
1360 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
1361 fread error correctly.
1362 (get_file_offset): New function.
1363 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
1364 fseeko if available. Use get_file_offset instead of return value
1365 of fseek.
1366 (__basic_file<char>::showmanyc): Use get_file_offset.
1367
1368 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
1369
1370 * include/std/type_traits (__make_unsigned_selector): Use
1371 __is_enum built-in trait.
1372 (__make_signed_selector): Likewise.
1373 (__underlying_type_impl): Likewise.
1374
1375 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
1376
1377 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
1378 first argument.
1379
1380 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
1381
1382 PR libstdc++/110574
1383 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
1384 --enable-cstdio.
1385 * doc/html/manual/configure.html: Regenerate.
1386
1387 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
1388
1389 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
1390 file.
1391 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
1392 New file.
1393 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
1394 Likewise.
1395 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1396 Likewise.
1397 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
1398 Likewise.
1399 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1400 Likewise.
1401
1402 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1403
1404 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
1405 Skip as UNSUPPORTED for C++98 mode.
1406 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
1407 Likewise.
1408
1409 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1410
1411 PR libstdc++/110542
1412 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
1413 Do not use std::fill_n during constant evaluation.
1414
1415 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1416
1417 * include/bits/vector.tcc (_M_default_append): Replace try-block
1418 with RAII types.
1419
1420 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1421
1422 * include/bits/iterator_concepts.h (projected): Add typename.
1423
1424 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1425
1426 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
1427 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
1428
1429 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1430
1431 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
1432 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
1433 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
1434 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
1435
1436 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1437
1438 * include/bits/alloc_traits.h (_Destroy): Qualify call.
1439 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
1440 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
1441
1442 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
1443
1444 * testsuite/lib/libstdc++.exp: Remove additional flag handled
1445 by Darwin specs.
1446
1447 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1448
1449 PR libstdc++/110432
1450 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
1451 * config.h.in: Regenerate.
1452 * configure: Regenerate.
1453 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
1454 * include/std/iostream: Use new autoconf macro as well as
1455 __has_attribute.
1456 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
1457 __has_attribute.
1458
1459 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1460
1461 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
1462 attribute.
1463
1464 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1465
1466 PR libstdc++/105081
1467 * src/c++11/random.cc (random_device::_M_init): Throw
1468 std::system_error when the requested device is a valid token but
1469 not available at runtime.
1470
1471 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
1472
1473 PR libstdc++/108672
1474 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
1475 __INT32_TYPE__ instead of int32_t.
1476
1477 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1478
1479 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
1480 with USE_ATOMIC_LIST_HEAD.
1481 (list_mutex): Replace global object with function. Use local
1482 static object when std::mutex constructor isn't constexpr.
1483
1484 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1485
1486 PR libstdc++/110462
1487 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
1488 copy_file_range can be called with loff_t* arguments.
1489 * configure: Regenerate.
1490 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1491 Use loff_t for offsets.
1492
1493 2023-06-29 Tom Tromey <tromey@adacore.com>
1494
1495 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
1496 regexp.
1497
1498 2023-06-28 Jan Hubicka <jh@suse.cz>
1499
1500 PR middle-end/109849
1501 * include/bits/c++config (std::__terminate): Mark cold.
1502 * include/bits/functexcept.h: Mark everything as cold.
1503 * libsupc++/exception: Mark terminate and unexpected as cold.
1504
1505 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
1506
1507 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
1508 * include/pstl/algorithm_impl.h: Likewise.
1509 * include/pstl/execution_defs.h: Likewise.
1510 * include/pstl/execution_impl.h: Likewise.
1511 * include/pstl/glue_algorithm_impl.h: Likewise.
1512 * include/pstl/glue_execution_defs.h: Likewise.
1513 * include/pstl/glue_memory_impl.h: Likewise.
1514 * include/pstl/glue_numeric_impl.h: Likewise.
1515 * include/pstl/memory_impl.h: Likewise.
1516 * include/pstl/numeric_fwd.h: Likewise.
1517 * include/pstl/numeric_impl.h: Likewise.
1518 * include/pstl/parallel_backend.h: Likewise.
1519 * include/pstl/parallel_backend_serial.h: Likewise.
1520 * include/pstl/parallel_backend_tbb.h: Likewise.
1521 * include/pstl/parallel_impl.h: Likewise.
1522 * include/pstl/pstl_config.h: Likewise.
1523 * include/pstl/unseq_backend_simd.h: Likewise.
1524 * include/pstl/utils.h: Likewise.
1525 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1526 Likewise.
1527 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1528 Likewise.
1529 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1530 Likewise.
1531 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1532 Likewise.
1533 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1534 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1535 Likewise.
1536 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1537 Likewise.
1538 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1539 Likewise.
1540 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1541 Likewise.
1542 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1543 Likewise.
1544 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1545 Likewise.
1546 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1547 Likewise.
1548 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1549 Likewise.
1550 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1551 Likewise.
1552 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1553 Likewise.
1554 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1555 Likewise.
1556 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1557 Likewise.
1558 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1559 Likewise.
1560 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1561 Likewise.
1562 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1563 Likewise.
1564 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1565 Likewise.
1566 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1567 Likewise.
1568 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1569 Likewise.
1570 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1571 Likewise.
1572 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1573 Likewise.
1574 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1575 Likewise.
1576 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1577 Likewise.
1578 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1579 Likewise.
1580 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1581 Likewise.
1582 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1583 Likewise.
1584 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1585 Likewise.
1586 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1587 Likewise.
1588 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1589 Likewise.
1590 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1591 Likewise.
1592 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1593 Likewise.
1594 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1595 Likewise.
1596 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1597 Likewise.
1598 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1599 Likewise.
1600 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1601 Likewise.
1602 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1603 Likewise.
1604 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
1605 Likewise.
1606 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1607 Likewise.
1608 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1609 Likewise.
1610 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1611 Likewise.
1612 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1613 Likewise.
1614 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1615 Likewise.
1616 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
1617 Likewise.
1618 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
1619 Likewise.
1620 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1621 Likewise.
1622 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
1623 Likewise.
1624 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
1625 Likewise.
1626 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1627 Likewise.
1628 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1629 Likewise.
1630 * testsuite/util/pstl/test_utils.h:
1631 Likewise.
1632
1633 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1634
1635 PR libstdc++/110239
1636 * include/std/format (__format::__parse_integer): Fix buffer
1637 overflow for wide chars.
1638 (formatter<const void*, C>::format): Cast to uintptr_t instead
1639 of uint64_t.
1640 * testsuite/std/format/string.cc: Test too-large widths.
1641
1642 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1643
1644 * include/bits/iterator_concepts.h (projected): Replace class
1645 template with alias template denoting an ADL-proofed helper.
1646 (incremental_traits<projected<Iter, Proj>>): Remove.
1647 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1648 New test.
1649
1650 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1651
1652 * include/debug/helper_functions.h (__get_distance)
1653 (__check_singular, __valid_range_aux, __valid_range): Qualify
1654 calls to disable ADL.
1655 (__check_singular_aux(const _Safe_iterator_base*)): Declare
1656 overload that was previously found via ADL.
1657
1658 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
1659
1660 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
1661 with RAII types.
1662
1663 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
1664
1665 * include/std/array (to_array(T(&)[N])): Remove redundant
1666 condition.
1667 (to_array(T(&&)[N])): Remove redundant std::move.
1668
1669 2023-06-16 Alexandre Oliva <oliva@adacore.com>
1670
1671 * testsuite/20_util/from_chars/4.cc: Skip long double on
1672 aarch64-rtems.
1673
1674 2023-06-16 Joel Brobecker <brobecker@adacore.com>
1675
1676 * configure.ac ["x${with_newlib}" = "xyes"]: Define
1677 HAVE_HYPOTF. Add compile-checks for various long double
1678 math functions as well.
1679 * configure: Regenerate.
1680
1681 2023-06-14 Jonny Grant <jg@jguk.org>
1682
1683 * doc/xml/manual/extensions.xml: Remove demangle exception
1684 description and include.
1685 * doc/html/manual/ext_demangling.html: Regenerate.
1686
1687 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
1688
1689 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
1690 [! SIMULATOR_TEST]: Also exclude running test05.
1691 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
1692
1693 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
1694
1695 * include/std/type_traits: Use using instead of typedef
1696
1697 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1698
1699 PR libstdc++/110077
1700 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
1701 Only define if _Float128 and long double have different
1702 representations.
1703
1704 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1705
1706 PR libstdc++/100285
1707 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
1708 (basic_endpoint, basic_resolver_entry, resolver_base)
1709 (basic_resolver_results, basic_resolver): Only define if the tcp
1710 or udp protocols will be defined.
1711
1712 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1713
1714 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
1715 * configure: Regenerate.
1716 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
1717 * doc/html/manual/abi.html: Regenerate.
1718
1719 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1720
1721 PR libstdc++/110149
1722 * include/std/format (formatter<const void*, charT>::parse):
1723 Only alow 0 and P for C++26 and non-strict modes.
1724 (formatter<const void*, charT>::format): Use toupper for P
1725 type, and insert zero-fill characters for 0 option.
1726 * testsuite/std/format/functions/format.cc: Check pointer
1727 formatting. Only check P2510R3 extensions conditionally.
1728 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
1729 extensions conditionally.
1730
1731 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1732
1733 PR libstdc++/110167
1734 * include/std/array (to_array): Initialize arrays of trivial
1735 types using memcpy. For non-trivial types, use lambda
1736 expressions instead of a separate helper function.
1737 (__to_array): Remove.
1738 * testsuite/23_containers/array/creation/110167.cc: New test.
1739
1740 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1741
1742 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
1743 Removed.
1744 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
1745 Removed.
1746 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
1747 Removed.
1748 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
1749 Removed.
1750 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
1751 Removed.
1752 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
1753 Removed.
1754 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
1755 test.
1756 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
1757 test.
1758 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
1759 test.
1760
1761 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1762
1763 PR libstdc++/110145
1764 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
1765 (double_to_chars_test_cases,
1766 double_scientific_precision_to_chars_test_cases_2,
1767 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
1768 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
1769 Add unconditional tests with corresponding double constants
1770 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
1771 0x1.7440bbff418b9p-18.
1772
1773 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1774
1775 * testsuite/util/testsuite_abi.cc (check_version): Re-add
1776 CXXABI_1.3.14.
1777
1778 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1779
1780 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
1781 Require effective target exceptions_enabled instead of using
1782 dg-skip-if.
1783 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
1784 shrink_to_fit() to be a no-op without exceptions enabled.
1785 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
1786 Likewise.
1787 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
1788 Require effective target exceptions_enabled.
1789 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
1790 Likewise.
1791 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
1792 Likewise.
1793 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
1794 Likewise.
1795 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
1796 Likewise.
1797 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
1798 Likewise.
1799
1800 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1801
1802 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
1803 affected by rounding.
1804 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
1805 double before comparing for equality.
1806 * testsuite/20_util/from_chars/6.cc: Likewise.
1807 * testsuite/20_util/variant/86874.cc: Use values that aren't
1808 affected by rounding.
1809 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
1810 original value instead of to floating-point-literal.
1811 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
1812 Cast arithmetic result to double before comparing for equality.
1813 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
1814 Likewise.
1815 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
1816 Likewise.
1817 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
1818 the absolute difference is less than 0.01 instead of comparing
1819 to two decimal places.
1820 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1821 Cast arithmetic result to double before comparing for equality.
1822 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1823 Likewise.
1824 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1825 Likewise.
1826 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
1827 Likewise.
1828 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
1829 Likewise.
1830 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
1831 Likewise.
1832 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1833
1834 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1835
1836 Revert:
1837 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1838
1839 * configure.ac: Use AS_IF.
1840 * configure: Regenerate.
1841
1842 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
1843
1844 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
1845 'UNSUPPORTED: [...]: exception handling disabled'.
1846
1847 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1848
1849 * testsuite/util/testsuite_abi.cc (check_version): Add
1850 CXXABI_1.3.15 symver and make it the latestp. Remove
1851 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
1852
1853 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1854 Jakub Jelinek <jakub@redhat.com>
1855
1856 PR libstdc++/104772
1857 * include/std/limits: (numeric_limits<__float128>): Define
1858 for __STRICT_ANSI__ as well.
1859 * testsuite/18_support/numeric_limits/128bit.cc: Remove
1860 check for __STRICT_ANSI__.
1861
1862 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1863
1864 * configure.ac: Use AS_IF.
1865 * configure: Regenerate.
1866
1867 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1868
1869 PR libstdc++/109822
1870 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
1871 to avoid casts to other vector types. Implement store as
1872 succession of power-of-2 sized memcpy to avoid PR90424.
1873
1874 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1875
1876 PR libstdc++/110054
1877 * include/experimental/bits/simd_builtin.h (_S_masked_store):
1878 Call into deduced ABI's SimdImpl after conversion.
1879 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
1880 Don't use _mm_maskmoveu_si128. Use the generic fall-back
1881 implementation. Also fix masked stores without SSE2, which
1882 were not doing anything before.
1883
1884 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1885
1886 * include/experimental/bits/simd.h (__bit_cast): Use
1887 __gnu__::__vector_size__ instead of gnu::vector_size.
1888
1889 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1890
1891 PR libstdc++/110139
1892 * include/std/array (__array_traits<T, 0>::operator T*()): Make
1893 conversion operator explicit.
1894 (array::front): Use size_type as subscript operand.
1895 (array::data): Use static_cast to make conversion explicit.
1896 * testsuite/23_containers/array/element_access/110139.cc: New
1897 test.
1898
1899 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
1900
1901 * include/bits/locale_classes.tcc: Remove check for
1902 codecvt<char8_t, char, mbstate_t> facet.
1903
1904 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1905
1906 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1907 close-on-exec flag on file descriptors.
1908
1909 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1910
1911 PR libstdc++/108178
1912 * src/filesystem/ops-common.h (do_copy_file): Check for empty
1913 files by trying to read a character.
1914 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1915 New test.
1916
1917 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1918
1919 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
1920 * config.h.in: Regenerate.
1921 * configure: Regenerate.
1922 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1923 Define new function.
1924 (do_copy_file): Use it.
1925
1926 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1927
1928 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
1929 * config.h.in: Regenerate.
1930 * configure: Regenerate.
1931 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
1932 function for sendfile logic. Loop to support large files. Skip
1933 zero-length files.
1934 (do_copy_file): Use it.
1935
1936 2023-06-04 Jason Merrill <jason@redhat.com>
1937
1938 PR c++/97720
1939 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
1940 * config/abi/pre/gnu.ver: Add it.
1941
1942 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
1943
1944 * include/parallel/algobase.h: Include <parallel/search.h>.
1945
1946 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1947
1948 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1949 Add const to equality operator.
1950
1951 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * include/std/expected (expected::and_then, expected::or_else)
1954 (expected::transform_error): Use _M_val and _M_unex instead of
1955 calling value() and error(), as per LWG 3938.
1956 (expected::transform): Likewise. Remove incorrect std::move
1957 calls from lvalue overloads.
1958 (expected<void, E>::and_then, expected<void, E>::or_else)
1959 (expected<void, E>::transform): Use _M_unex instead of calling
1960 error().
1961 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
1962 and transform, and for std::expected<void, E>.
1963 * testsuite/20_util/expected/lwg3938.cc: New test.
1964
1965 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1966
1967 PR libstdc++/110060
1968 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
1969 Remove.
1970 (vector::size, vector::capacity): Remove calls to _M_invariant.
1971 * include/bits/vector.tcc (vector::_M_fill_assign): Add
1972 optimization hint to reallocating path.
1973 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
1974 Likewise.
1975 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
1976 to...
1977 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
1978 ...here. Check assign(FwdIter, FwdIter) too.
1979 * testsuite/23_containers/vector/types/1.cc: Revert addition
1980 of -Wno-stringop-overread option.
1981
1982 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1983
1984 * doc/xml/manual/evolution.xml: Document removal of implicit
1985 allocator rebinding extensions in strict mode and for C++20.
1986 * doc/html/*: Regenerate.
1987
1988 2023-06-01 Jason Merrill <jason@redhat.com>
1989
1990 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
1991 handlers in the cleanup phase.
1992
1993 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
1994
1995 PR libstdc++/110050
1996 * include/experimental/bits/simd.h (__vectorized_sizeof): With
1997 __have_neon_a32 only single-precision float works (in addition
1998 to integers).
1999
2000 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
2001
2002 * include/bits/stl_algo.h
2003 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
2004 * include/bits/stl_algobase.h: ...here.
2005 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
2006 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
2007 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
2008 Move...
2009 * include/parallel/algobase.h: ...here.
2010 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
2011 includes. Include <bits/stl_algobase.h>.
2012
2013 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2014
2015 PR libstdc++/109818
2016 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
2017 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
2018 * config.h.in: Regenerate.
2019 * configure: Regenerate.
2020 * include/c_global/cmath (float_t, double_t): Guard using new
2021 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
2022
2023 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2024
2025 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
2026 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
2027 for C99 rounding functions to here.
2028 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
2029 functions from here.
2030 * config.h.in: Regenerate.
2031 * configure: Regenerate.
2032 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
2033 of _GLIBCXX_USE_C99_MATH_TR1.
2034 * include/bits/random.tcc: Likewise.
2035 * include/c_compatibility/math.h: Likewise.
2036 * include/c_global/cmath: Likewise.
2037 * include/ext/random: Likewise.
2038 * include/ext/random.tcc: Likewise.
2039 * include/std/complex: Likewise.
2040 * testsuite/20_util/from_chars/4.cc: Likewise.
2041 * testsuite/20_util/from_chars/8.cc: Likewise.
2042 * testsuite/26_numerics/complex/proj.cc: Likewise.
2043 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
2044 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
2045 Likewise.
2046 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
2047 Likewise.
2048 * testsuite/util/testsuite_random.h: Likewise.
2049
2050 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2051
2052 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
2053 function.
2054 (vector::size(), vector::capacity()): Call _M_invariant().
2055 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
2056 * testsuite/23_containers/vector/types/1.cc: Add suppression for
2057 false positive warning (PR110060).
2058
2059 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2060
2061 PR libstdc++/109921
2062 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
2063 defined before trying to use _Float128.
2064
2065 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2066
2067 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
2068 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
2069 * configure: Regenerate.
2070
2071 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2072
2073 * include/bits/unique_lock.h: Include <bits/error_constants.h>
2074 here for std::errc constants.
2075 * include/std/mutex: Do not include <bits/error_constants.h> and
2076 <exception> here.
2077
2078 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2079
2080 * configure.ac: Replace use of -o operator for test.
2081 * configure: Regenerate.
2082
2083 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2084
2085 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
2086 noexcept to all constructors except the default constructor.
2087 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
2088 (scoped_allocator_adaptor::outer_allocator): Likewise.
2089 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
2090
2091 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2092
2093 PR libstdc++/104772
2094 * include/std/limits (numeric_limits<__float128>): Define.
2095 * testsuite/18_support/numeric_limits/128bit.cc: New test.
2096
2097 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2098
2099 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
2100 msp430 to all 16-bit targets.
2101 * configure: Regenerate.
2102
2103 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2104
2105 PR libstdc++/109921
2106 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
2107 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
2108 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
2109 binary64.
2110 (from_chars(const char*, const char*, double&, chars_format)):
2111 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
2112 (from_chars(const char*, const char*, _Float128&, chars_format))
2113 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
2114 defined, otherwise parse a long double and convert to _Float128.
2115
2116 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
2117
2118 PR libstdc++/109922
2119 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
2120 Add deprecated attribute to non-standard overload.
2121 * doc/xml/manual/evolution.xml: Document deprecation.
2122 * doc/html/*: Regenerate.
2123 * testsuite/27_io/manipulators/standard/char/1.cc: Add
2124 dg-warning for expected deprecated warning.
2125 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
2126 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
2127 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
2128
2129 2023-05-30 Alexandre Oliva <oliva@adacore.com>
2130
2131 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2132 on x86_64-vxworks.
2133 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2134 x86_64-vxworks.
2135
2136 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2137
2138 PR libstdc++/109822
2139 * include/experimental/bits/simd.h (to_native): Use int NTTP
2140 as specified in PTS2.
2141 (to_compatible): Likewise. Add missing tag to call mask
2142 generator ctor.
2143 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
2144 test.
2145
2146 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2147
2148 * testsuite/experimental/simd/tests/integer_operators.cc:
2149 Compute expected value differently to avoid getting turned into
2150 a vector shift.
2151
2152 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
2153
2154 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
2155 double <-> (u)long conversion tests conditional on sizeof(long
2156 double) and sizeof(long).
2157
2158 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
2159
2160 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
2161 Negative __y is UB, so prefer signed compare.
2162
2163 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
2164
2165 * testsuite/util/testsuite_allocator.h (PointerBase): Add
2166 relational operators.
2167
2168 2023-05-25 Alexandre Oliva <oliva@adacore.com>
2169
2170 * testsuite/20_util/to_chars/long_double.cc: Expect execution
2171 fail on x86-vxworks.
2172
2173 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2174
2175 PR libstdc++/109949
2176 * include/experimental/bits/simd.h (__intrinsic_type): If
2177 __ALTIVEC__ is defined, map gnu::vector_size types to their
2178 corresponding __vector T types without losing unsignedness of
2179 integer types. Also prefer long long over long.
2180 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
2181 object to the expected unsigned vector type.
2182
2183 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2184
2185 PR libstdc++/109261
2186 * include/experimental/bits/simd.h (__intrinsic_type):
2187 Specialize __intrinsic_type<double, 8> and
2188 __intrinsic_type<double, 16> in any case, but provide the member
2189 type only with __aarch64__.
2190
2191 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
2192
2193 PR libstdc++/109261
2194 * include/experimental/bits/simd_neon.h (_S_reduce): Add
2195 constexpr and make NEON implementation conditional on
2196 not __builtin_is_constant_evaluated.
2197
2198 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
2199
2200 PR libstdc++/109261
2201 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
2202 Avoid vector builtin subscripting in constant expressions.
2203 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
2204 (const_where_expression, where_expression, where)
2205 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
2206 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
2207 internal APIs).
2208 * include/experimental/bits/simd_builtin.h (__vector_permute)
2209 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
2210 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
2211 (_MaskImplBuiltin::_S_store): Add constexpr.
2212 (_CommonImplBuiltin::_S_store_bool_array)
2213 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
2214 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
2215 constant_evaluated case.
2216 * include/experimental/bits/simd_fixed_size.h
2217 (_S_masked_load): Reword comment.
2218 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
2219 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
2220 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
2221 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
2222 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
2223 constexpr.
2224 (_SimdTuple::operator[], _M_set): Add constexpr and add
2225 constant_evaluated case.
2226 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
2227 * include/experimental/bits/simd_scalar.h: Add constexpr.
2228 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
2229 constexpr and add constant_evaluated case.
2230 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
2231 (_S_less_equal): Value-initialize to satisfy constexpr
2232 evaluation.
2233 (_MaskImplX86::_S_load): Add constant_evaluated case.
2234 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
2235 case. Value-initialize local variables.
2236 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
2237 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
2238 case.
2239 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
2240 test.
2241
2242 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
2243
2244 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
2245 __infn into #ifdef'ed block.
2246 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
2247 constants only when used.
2248 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
2249 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
2250 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
2251 Likewise.
2252 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2253 Move totest and expect1 into #ifdef'ed block.
2254
2255 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
2256
2257 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
2258 * doc/html/manual/strings.html: Regenerate.
2259
2260 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2261
2262 PR libstdc++/109883
2263 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
2264
2265 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2266
2267 PR libstdc++/109883
2268 * include/c_global/cmath (atan2, fmod, pow): Move
2269 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
2270 __gnu_cxx::__bfloat16_t overloads.
2271 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
2272 Likewise.
2273 (fma): Move __gnu_cxx::__promote_3 using template after
2274 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
2275
2276 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2277
2278 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
2279 checks for float_round_style and float_denorm_style.
2280
2281 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2282
2283 * include/bits/c++config: Add system_header pragma.
2284
2285 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2286
2287 * include/std/expected (expected::and_then, expected::or_else)
2288 (expected::transform, expected::transform_error): Fix exception
2289 specifications as per LWG 3877.
2290 (expected<void, E>::and_then, expected<void, E>::transform):
2291 Likewise.
2292 * testsuite/20_util/expected/lwg3877.cc: New test.
2293
2294 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
2295
2296 * include/std/type_traits: Use __bool_constant instead of
2297 integral_constant.
2298
2299 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2300
2301 * configure: Regenerate.
2302
2303 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2304
2305 PR libstdc++/109741
2306 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
2307 * config.h.in: Regenerate.
2308 * configure: Regenerate.
2309 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
2310 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
2311 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
2312 instead of hardcoded 64.
2313
2314 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2315
2316 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
2317 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
2318 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
2319 * config.h.in: Regenerate.
2320 * configure: Regenerate.
2321 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
2322 instead of _GLIBCXX_USE_C99_FENV_TR1.
2323 * include/c_global/cfenv: Likewise.
2324 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
2325 of _GLIBCXX_USE_C99_CTYPE_TR1.
2326
2327 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2328
2329 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
2330 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
2331 <inttypes.h> features in C++11 mode and define
2332 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
2333 * config.h.in: Regenerate.
2334 * configure: Regenerate.
2335 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
2336 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
2337 of _GLIBCXX_USE_C99_STDINT_TR1.
2338 * include/c_compatibility/inttypes.h: Check
2339 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
2340 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
2341 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2342 * include/c_compatibility/stdatomic.h: Check
2343 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
2344 * include/c_compatibility/stdint.h: Likewise.
2345 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
2346 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
2347 _GLIBCXX_USE_C99_INTTYPES_TR1 and
2348 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2349 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
2350 instead of _GLIBCXX_USE_C99_STDINT_TR1.
2351 * include/std/atomic: Likewise.
2352 * src/c++11/cow-stdexcept.cc: Likewise.
2353 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2354 Likewise.
2355 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
2356 Likewise.
2357
2358 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2359
2360 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
2361 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
2362 * config.h.in: Regenerate.
2363 * configure: Regenerate.
2364 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
2365 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
2366 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
2367
2368 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2369
2370 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
2371 assertion to ensure expected exception is throw.
2372
2373 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2374
2375 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
2376 printer for chrono::zoned_time for cx11 ABI and tzdb effective
2377 target.
2378
2379 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2380
2381 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
2382 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
2383 * configure: Regenerate.
2384
2385 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2386
2387 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
2388 to check for nan, nanf, and nanl.
2389 * configure: Regenerate.
2390
2391 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2392
2393 * include/bits/char_traits.h (char_traits<char16_t>): Do not
2394 depend on _GLIBCXX_USE_C99_STDINT_TR1.
2395 (char_traits<char32_t>): Likewise.
2396 * include/experimental/source_location: Likewise.
2397
2398 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2399
2400 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
2401 (atomic_int_least16_t, atomic_uint_least16_t)
2402 (atomic_int_least32_t, atomic_uint_least32_t)
2403 (atomic_int_least64_t, atomic_uint_least64_t)
2404 (atomic_int_fast16_t, atomic_uint_fast16_t)
2405 (atomic_int_fast32_t, atomic_uint_fast32_t)
2406 (atomic_int_fast64_t, atomic_uint_fast64_t)
2407 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
2408 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
2409
2410 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2411
2412 * include/bits/algorithmfwd.h (shuffle): Do not depend on
2413 _GLIBCXX_USE_C99_STDINT_TR1.
2414 * include/bits/ranges_algo.h (shuffle): Likewise.
2415 * include/bits/stl_algo.h (shuffle): Likewise.
2416 * include/ext/random: Likewise.
2417 * include/ext/throw_allocator.h (random_condition): Likewise.
2418 * include/std/random: Likewise.
2419 * src/c++11/cow-string-inst.cc: Likewise.
2420 * src/c++11/random.cc: Likewise.
2421
2422 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2423
2424 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
2425 _GLIBCXX_USE_C99_STDINT_TR1.
2426
2427 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2428
2429 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
2430 on _GLIBCXX_USE_C99_STDINT_TR1.
2431
2432 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2433
2434 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
2435 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2436 * testsuite/experimental/string_view/typedefs.cc: Likewise.
2437
2438 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2439
2440 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
2441 (auto_locale, auto_ferounding): New class types.
2442 (from_chars_impl): Use auto_locale and auto_ferounding.
2443
2444 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2445
2446 PR libstdc++/109772
2447 * include/std/chrono (hh_mm_ss::__fits): Remove variable
2448 template.
2449 (hh_mm_ss::__subseconds): Remove __fits from constraints.
2450 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
2451 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
2452 hh_mm_ss<duration<int, std::pico>>.
2453
2454 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2455
2456 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
2457 * include/bits/basic_ios.h: Add static assertion checking
2458 traits_type::value_type.
2459 * include/bits/basic_string.h: Likewise. Do not rebind
2460 allocator, and add static assertion checking its value_type.
2461 (basic_string::_Alloc_traits_impl): Remove class template.
2462 (basic_string::_S_allocate): New static member function.
2463 (basic_string::assign): Use _S_allocate.
2464 * include/bits/basic_string.tcc (basic_string::_M_create)
2465 (basic_string::reserve, basic_string::_M_replace): Likewise.
2466 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
2467 Disable for C++20 and later.
2468 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
2469 Likweise.
2470
2471 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2472
2473 PR libstdc++/109758
2474 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
2475 and negative zero correctly.
2476 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
2477
2478 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
2479
2480 * include/bits/hashtable_policy.h
2481 (_NodeBuilder<>::_S_build): Use __node_ptr.
2482 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
2483 (_AllocNode<>): Likewise.
2484 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
2485 to call std::is_permutation in the non-unique key implementation.
2486 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
2487 _M_begin() once.
2488 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
2489 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
2490 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
2491 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
2492 const_iterator.
2493 (_Hashtable<>::find): Likewise.
2494 (_Hashtable<>::_M_emplace): Likewise.
2495 (_Hashtable<>::_M_insert_unique): Likewise.
2496
2497 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2498
2499 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
2500 Print floating-point durations correctly.
2501 (StdChronoTimePointPrinter): Support printing only the value,
2502 not the type name. Uncomment handling for known clocks.
2503 (StdChronoZonedTimePrinter): Remove type names from output.
2504 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
2505 (StdChronoTimeZonePrinter): Add equals sign to output.
2506 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
2507
2508 2023-05-05 Alexandre Oliva <oliva@adacore.com>
2509
2510 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2511 on aarch64-vxworks.
2512 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2513 aarch64-vxworks.
2514
2515 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
2516
2517 * doc/xml/manual/abi.xml (abi.versioning.history): Document
2518 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
2519 * doc/html/manual/abi.html: Regenerate.
2520
2521 2023-05-04 Florian Weimer <fweimer@redhat.com>
2522
2523 * doc/xml/manual/abi.xml (abi.versioning.history): Add
2524 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
2525 libgcc_s.
2526
2527 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2528
2529 * src/c++17/floating_from_chars.cc
2530 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
2531 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
2532 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
2533 _ZSt8to_charsPcS_u9__ieee128.
2534 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
2535 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
2536 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
2537 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
2538 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
2539
2540 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2541
2542 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
2543 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
2544 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
2545 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
2546 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
2547 versions.
2548 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
2549 file.
2550
2551 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
2552 Jonathan Wakely <jwakely@redhat.com>
2553
2554 PR libstdc++/109703
2555 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
2556 Initialize _M_string_length.
2557
2558 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2559
2560 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2561 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2562 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2563 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2564 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2565 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2566 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2567 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2568
2569 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2570
2571 PR libstdc++/109694
2572 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
2573 -Wattribute-alias.
2574
2575 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2576
2577 * include/bits/random.h (gamma_distribution): Add to the right
2578 doxygen group.
2579 (discrete_distribution, piecewise_constant_distribution)
2580 (piecewise_linear_distribution): Create a new doxygen group and
2581 fix the incomplete doxygen comments.
2582 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2583 Add to doxygen group.
2584
2585 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2586
2587 * include/bits/uses_allocator.h: Add missing @file comment.
2588 * include/bits/regex.tcc: Remove stray doxygen comments.
2589 * include/experimental/memory_resource: Likewise.
2590 * include/std/bit: Tweak doxygen @cond comments.
2591 * include/std/expected: Likewise.
2592 * include/std/numbers: Likewise.
2593
2594 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2595
2596 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
2597 from header paths.
2598
2599 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2600
2601 * include/bits/move.h: Simplify opening/closing namespace std.
2602
2603 2023-04-28 Jakub Jelinek <jakub@redhat.com>
2604
2605 PR libstdc++/108969
2606 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
2607 _ZSt21ios_base_library_initv.
2608 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
2609 symver and make it the latestp.
2610 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
2611 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
2612 * include/std/iostream: If init_priority attribute is supported
2613 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
2614 symbol into the object.
2615 * configure: Regenerated.
2616
2617 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2618
2619 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
2620 * include/std/format: Likewise.
2621
2622 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2623
2624 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
2625 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
2626
2627 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2628
2629 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
2630 HTML docs.
2631 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
2632 from doxygen docs.
2633 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
2634 Likewise.
2635 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2636 Likewise.
2637 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2638 Likewise.
2639 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2640 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2641 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2642 (_DEFINE_BINARY_OPERATOR): Likewise.
2643
2644 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2645
2646 * include/bits/memory_resource.h: Improve doxygen comments.
2647 * include/std/memory_resource: Likewise.
2648
2649 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2650
2651 PR libstdc++/40380
2652 * include/bits/basic_string.h: Improve doxygen comments.
2653 * include/bits/cow_string.h: Likewise.
2654 * include/bits/forward_list.h: Likewise.
2655 * include/bits/fs_dir.h: Likewise.
2656 * include/bits/fs_path.h: Likewise.
2657 * include/bits/quoted_string.h: Likewise.
2658 * include/bits/stl_bvector.h: Likewise.
2659 * include/bits/stl_map.h: Likewise.
2660 * include/bits/stl_multimap.h: Likewise.
2661 * include/bits/stl_multiset.h: Likewise.
2662 * include/bits/stl_set.h: Likewise.
2663 * include/bits/stl_vector.h: Likewise.
2664 * include/bits/unordered_map.h: Likewise.
2665 * include/bits/unordered_set.h: Likewise.
2666 * include/std/filesystem: Likewise.
2667 * include/std/iomanip: Likewise.
2668
2669 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2670
2671 PR libstdc++/105081
2672 * src/c++11/random.cc (__throw_syserr): New function.
2673 (random_device::_M_init, random_device::_M_init_pretr1): Use new
2674 function for bad tokens.
2675 (random_device::_M_getval): Use new function for read errors.
2676 * testsuite/util/testsuite_random.h (random_device_available):
2677 Change catch handler to use std::system_error.
2678
2679 2023-04-24 Patrick Palka <ppalka@redhat.com>
2680
2681 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
2682 Fix propagation of sign bit.
2683 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
2684 non-standard 'signed typedef-name'. Add some compile-time tests
2685 for right-shifting a negative __max_diff_type value by more than
2686 one.
2687
2688 2023-04-19 Patrick Palka <ppalka@redhat.com>
2689 Jonathan Wakely <jwakely@redhat.com>
2690
2691 PR c++/100157
2692 * include/bits/utility.h (_Nth_type): Conditionally define in
2693 terms of __type_pack_element if available.
2694 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
2695 additional errors from the new built-in.
2696
2697 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2698
2699 Revert:
2700 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2701
2702 PR libstdc++/108969
2703 * src/Makefile.am: Move globals_io.cc to here.
2704 * src/Makefile.in: Regenerate.
2705 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2706 * src/c++98/Makefile.in: Regenerate.
2707 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2708 symbol name and then export with GLIBCXX_3.4.31 symver.
2709 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2710 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2711 Regenerate.
2712 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2713 Regenerate.
2714 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2715 Regenerate.
2716 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2717 Regenerate.
2718 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2719 Regenerate.
2720 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2721 Regenerate.
2722 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2723 Regenerate.
2724 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2725 Regenerate.
2726 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2727
2728 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2729
2730 Revert:
2731 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2732
2733 PR libstdc++/108969
2734 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2735
2736 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2737
2738 * doc/xml/manual/extensions.xml: Fix example to declare and
2739 qualify std::free, and use NULL instead of 0.
2740 * doc/html/manual/ext_demangling.html: Regenerate.
2741 * libsupc++/cxxabi.h: Adjust doxygen comments.
2742
2743 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2744
2745 PR libstdc++/108969
2746 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2747
2748 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2749
2750 PR libstdc++/108969
2751 * src/Makefile.am: Move globals_io.cc to here.
2752 * src/Makefile.in: Regenerate.
2753 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2754 * src/c++98/Makefile.in: Regenerate.
2755 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2756 symbol name and then export with GLIBCXX_3.4.31 symver.
2757 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2758 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2759 Regenerate.
2760 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2761 Regenerate.
2762 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2763 Regenerate.
2764 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2765 Regenerate.
2766 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2767 Regenerate.
2768 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2769 Regenerate.
2770 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2771 Regenerate.
2772 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2773 Regenerate.
2774 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2775
2776 2023-04-18 Patrick Palka <ppalka@redhat.com>
2777
2778 PR libstdc++/108827
2779 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
2780 for C++23.
2781 * include/std/ranges (range_adaptor_closure): Define for C++23.
2782 * include/std/version (__cpp_lib_ranges): Bump value for
2783 C++23.
2784 * testsuite/std/ranges/version_c++23.cc: Bump expected value
2785 of __cpp_lib_ranges.
2786 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
2787
2788 2023-04-18 Patrick Palka <ppalka@redhat.com>
2789
2790 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
2791 Define for C++23.
2792 (__cpp_lib_ranges_iota): Likewise.
2793 (__cpp_lib_ranges_find_last): Likewise.
2794 (__cpp_lib_fold): Rename to ...
2795 (__cpp_lib_ranges_fold): ... this.
2796 * include/std/version: As above.
2797 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
2798 renaming __cpp_lib_fold.
2799 * testsuite/std/ranges/version_c++23.cc: Verify values
2800 of the above feature-test macros.
2801
2802 2023-04-18 Patrick Palka <ppalka@redhat.com>
2803
2804 PR libstdc++/109525
2805 * include/std/ranges (views::_AsConst::operator()): Add
2806 missing const to constant_range test.
2807 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
2808 Improve formatting. Adjust expected type of v2.
2809 (test03): New test.
2810
2811 2023-04-14 Patrick Palka <ppalka@redhat.com>
2812
2813 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
2814 (const_sentinel_t): Likewise.
2815 (range_const_reference_t): Likewise.
2816 (constant_range): Likewise.
2817 (__cust_access::__possibly_const_range): Likewise, replacing ...
2818 (__cust_access::__as_const): ... this.
2819 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
2820 (__cust_access::_CEnd::operator()): Likewise.
2821 (__cust_access::_CRBegin::operator()): Likewise.
2822 (__cust_access::_CREnd::operator()): Likewise.
2823 (__cust_access::_CData::operator()): Likewise.
2824 * include/bits/ranges_util.h (ranges::__detail::__different_from):
2825 Make it an alias of std::__detail::__different_from.
2826 (view_interface::cbegin): Define for C++23.
2827 (view_interface::cend): Likewise.
2828 * include/bits/stl_iterator.h (__detail::__different_from): Define.
2829 (iter_const_reference_t): Define for C++23.
2830 (__detail::__constant_iterator): Likewise.
2831 (__detail::__is_const_iterator): Likewise.
2832 (__detail::__not_a_const_iterator): Likewise.
2833 (__detail::__iter_const_rvalue_reference_t): Likewise.
2834 (__detail::__basic_const_iter_cat):: Likewise.
2835 (const_iterator): Likewise.
2836 (__detail::__const_sentinel): Likewise.
2837 (const_sentinel): Likewise.
2838 (basic_const_iterator): Likewise.
2839 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
2840 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
2841 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
2842 Likewise.
2843 (make_const_iterator): Define for C++23.
2844 (make_const_sentinel): Likewise.
2845 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
2846 (as_const_view): Likewise.
2847 (enable_borrowed_range<as_const_view>): Likewise.
2848 (views::__detail::__is_ref_view): Likewise.
2849 (views::__detail::__can_is_const_view): Likewise.
2850 (views::_AsConst, views::as_const): Likewise.
2851 * include/std/span (span::const_iterator): Likewise.
2852 (span::const_reverse_iterator): Likewise.
2853 (span::cbegin): Likewise.
2854 (span::cend): Likewise.
2855 (span::crbegin): Likewise.
2856 (span::crend): Likewise.
2857 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
2858 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
2859 behave independently of C++20 vs C++23.
2860 * testsuite/std/ranges/version_c++23.cc: Verify value of
2861 __cpp_lib_ranges_as_const macro.
2862 * testsuite/24_iterators/const_iterator/1.cc: New test.
2863 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
2864
2865 2023-04-14 Patrick Palka <ppalka@redhat.com>
2866
2867 * include/bits/ranges_base.h (__cust_access::__as_const)
2868 (__cust_access::_CBegin, __cust::cbegin)
2869 (__cust_access::_CEnd, __cust::cend)
2870 (__cust_access::_CRBegin, __cust::crbegin)
2871 (__cust_access::_CREnd, __cust::crend)
2872 (__cust_access::_CData, __cust::cdata): Move down definitions to
2873 shortly after the definition of input_range.
2874
2875 2023-04-14 Patrick Palka <ppalka@redhat.com>
2876
2877 * include/bits/ranges_algo.h: Include <optional> for C++23.
2878 (__cpp_lib_fold): Define for C++23.
2879 (in_value_result): Likewise.
2880 (__detail::__flipped): Likewise.
2881 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
2882 (__detail::__indirectly_binary_left_foldable): Likewise.
2883 (___detail:__indirectly_binary_right_foldable): Likewise.
2884 (fold_left_with_iter_result): Likewise.
2885 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
2886 (__fold_left_fn, fold_left): Likewise.
2887 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
2888 Likewise.
2889 (__fold_left_first_fn, fold_left_first): Likewise.
2890 (__fold_right_fn, fold_right): Likewise.
2891 (__fold_right_last_fn, fold_right_last): Likewise.
2892 * include/std/version (__cpp_lib_fold): Likewise.
2893 * testsuite/25_algorithms/fold_left/1.cc: New test.
2894 * testsuite/25_algorithms/fold_right/1.cc: New test.
2895
2896 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
2897
2898 * include/std/format (formatter): Add comment to deleted default
2899 constructor of primary template.
2900 (_Checking_scanner): Add static_assert.
2901
2902 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2903
2904 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
2905 * doc/html/*: Regenerate.
2906
2907 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2908
2909 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
2910 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
2911 namespace to avoid clashing with libc struct.
2912 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
2913 Likewise.
2914 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
2915 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
2916 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
2917 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2918 * testsuite/experimental/synchronized_value.cc: Require gthreads
2919 and add missing option for pthreads targets.
2920
2921 2023-04-12 Patrick Palka <ppalka@redhat.com>
2922
2923 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
2924 for C++23.
2925 (__detail::__range_with_movable_reference): Likewise.
2926 (enumerate_view): Likewise.
2927 (enumerate_view::_Iterator): Likewise.
2928 (enumerate_view::_Sentinel): Likewise.
2929 (views::__detail::__can_enumerate_view): Likewise.
2930 (views::_Enumerate, views::enumerate): Likewise.
2931 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
2932 * testsuite/std/ranges/version_c++23.cc: Verify value of
2933 __cpp_lib_ranges_enumerate.
2934 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
2935
2936 2023-04-12 Patrick Palka <ppalka@redhat.com>
2937
2938 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
2939 Propagate _M_trailing_empty in the const-converting constructor
2940 as per LWG 3904.
2941 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
2942 assertion.
2943 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
2944
2945 2023-04-12 Patrick Palka <ppalka@redhat.com>
2946
2947 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2948 <iterator>, <limits> and <cstdint>.
2949
2950 2023-04-12 Patrick Palka <ppalka@redhat.com>
2951
2952 PR libstdc++/108291
2953 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
2954 parameter types of the lambda wrapper passed to adjacent_find.
2955 (chunk_by_view::_M_find_prev): Likewise.
2956 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
2957 New tests.
2958
2959 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2960
2961 PR libstdc++/109482
2962 * include/experimental/internet (basic_endpoint::basic_endpoint()):
2963 Ensure that the required union members are active. Only define
2964 as constexpr for C++20 and later.
2965 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
2966 Likewise.
2967 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
2968 check constexpr default constructor for C++20 and later.
2969 * testsuite/experimental/net/internet/endpoint/extensible.cc:
2970 Likewise.
2971
2972 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2973
2974 * src/c++20/tzdata.zi: Import new file from 2023c release.
2975
2976 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2977
2978 * include/precompiled/stdc++.h (C++17): Don't double-include
2979 <charconv>, once with wrong conditions.
2980 * testsuite/18_support/96817.cc: Require hosted.
2981 * testsuite/18_support/bad_exception/59392.cc: Ditto.
2982 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
2983 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
2984 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2985 Ditto.
2986
2987 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2988
2989 * include/bits/c++config: When __STDC_HOSTED__ is zero,
2990 disable _GLIBCXX_DEBUG and, if it was set, enable
2991 _GLIBCXX_ASSERTIONS.
2992 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
2993 Include <bits/c++config.h> when determining whether debug is
2994 set, in order to inherit the logic from above
2995
2996 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2997
2998 * testsuite/17_intro/versionconflict.cc: New test.
2999 * include/std/version: Allow disabling the system_header pragma
3000 via _GLIBCXX_TESTING_SYSHDR.
3001
3002 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
3003
3004 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3005 Synchronize the definition block with...
3006 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
3007 ... this one here. Also define the 202202L value, rather than
3008 leaving it up to purely unique_ptr.h, so that the value is
3009 synchronized across all headers.
3010 (__gnu_debug::_Safe_iterator_base): Move into new conditional
3011 block.
3012 * include/std/memory (__cpp_lib_atomic_value_initialization):
3013 Define on freestanding under the same conditions as in
3014 atomic_base.h.
3015 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
3016 Also define on freestanding.
3017 (__cpp_lib_to_chars): Ditto.
3018 (__cpp_lib_gcd): Ditto.
3019 (__cpp_lib_gcd_lcm): Ditto.
3020 (__cpp_lib_raw_memory_algorithms): Ditto.
3021 (__cpp_lib_array_constexpr): Ditto.
3022 (__cpp_lib_nonmember_container_access): Ditto.
3023 (__cpp_lib_clamp): Ditto.
3024 (__cpp_lib_constexpr_char_traits): Ditto.
3025 (__cpp_lib_constexpr_string): Ditto.
3026 (__cpp_lib_sample): Ditto.
3027 (__cpp_lib_lcm): Ditto.
3028 (__cpp_lib_constexpr_iterator): Ditto.
3029 (__cpp_lib_constexpr_char_traits): Ditto.
3030 (__cpp_lib_interpolate): Ditto.
3031 (__cpp_lib_constexpr_utility): Ditto.
3032 (__cpp_lib_shift): Ditto.
3033 (__cpp_lib_ranges): Ditto.
3034 (__cpp_lib_move_iterator_concept): Ditto.
3035 (__cpp_lib_constexpr_numeric): Ditto.
3036 (__cpp_lib_constexpr_functional): Ditto.
3037 (__cpp_lib_constexpr_algorithms): Ditto.
3038 (__cpp_lib_constexpr_tuple): Ditto.
3039 (__cpp_lib_constexpr_memory): Ditto.
3040
3041 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
3042
3043 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
3044 timeout factor on hppa*-*-*.
3045
3046 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
3047
3048 * include/bits/regex.h (sub_match::swap): New function.
3049 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
3050
3051 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
3052
3053 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
3054 example program.
3055 * doc/html/manual/ext_demangling.html: Regenerate.
3056
3057 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3058
3059 PR tree-optimization/107087
3060 * include/bits/cow_string.h (basic_string::size()): Add
3061 optimizer hint that _S_empty_rep()._M_length is always zero.
3062 (basic_string::length()): Call size().
3063
3064 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3065
3066 PR libstdc++/109339
3067 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
3068 Add attribute access with access-mode 'none'.
3069 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
3070
3071 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
3072
3073 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
3074 Revert change from member function to data member. Fix for
3075 constant evaluation by detecting which union member is active.
3076 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
3077 flag.
3078
3079 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3080
3081 PR libstdc++/109242
3082 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
3083 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
3084
3085 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3086
3087 * include/experimental/internet (ip::make_address): Implement
3088 missing overload.
3089 (ip::address_v4::broadcast()): Avoid undefined shift.
3090 (ip::basic_endpoint): Fix member functions for constexpr.
3091 (ip::basic_endpoint::_M_is_v6): Replace member function with
3092 data member, adjust member functions using it.
3093 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
3094 content.
3095 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3096 constexpr checks to work in C++14.
3097 * testsuite/experimental/net/internet/address/v4/creation.cc:
3098 Likewise.
3099 * testsuite/experimental/net/internet/endpoint/cons.cc:
3100 Likewise.
3101 * testsuite/experimental/net/internet/network/v4/cons.cc:
3102 Likewise.
3103 * testsuite/experimental/net/internet/network/v4/members.cc:
3104 Likewise.
3105 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
3106
3107 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3108
3109 * include/std/expected (expected::value() &): Use const lvalue
3110 for unex member passed to bad_expected_access constructor, as
3111 per LWG 3843.
3112
3113 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3114
3115 PR libstdc++/109340
3116 * include/std/expected (expected::transform): Use
3117 std::remove_cv_t instead of std::remove_cvref_t.
3118 (expected::transform_error): Likewise.
3119 (expected<cv void, E>::transform): Likewise.
3120 (expected<cv void, E>::transform_error): Likewise.
3121 * include/std/optional (transform): Use std::remove_cv_t.
3122 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
3123
3124 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
3125
3126 * include/std/optional (optional): Adjust static assertion to
3127 reject arrays and functions as well as references.
3128 * testsuite/20_util/optional/requirements_neg.cc: New test.
3129
3130 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3131
3132 PR libstdc++/103387
3133 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
3134 std::use_facet instead of cached _M_num_get facet.
3135 (istream::operator>>(short&)): Likewise.
3136 (istream::operator>>(int&)): Likewise.
3137 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
3138 std::use_facet instead of cached _M_num_put facet.
3139
3140 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3141
3142 * include/bits/char_traits.h (char_traits::copy): Return without
3143 using memcpy if n==0.
3144 (char_traits::assign): Likewise for memset.
3145
3146 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3147
3148 PR libstdc++/109299
3149 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
3150 hint for compiler that local strings fit in the local buffer.
3151
3152 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
3153
3154 PR libstdc++/109288
3155 * include/std/chrono (__detail::__get_leap_second_info): Update
3156 expiry date of hardcoded leapseconds list.
3157 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
3158 Likewise.
3159 * src/c++20/tzdata.zi: Import new file from 2023a release.
3160 * testsuite/std/time/time_zone/get_info_local.cc: Only check
3161 transitions for Egypt up to 2014.
3162
3163 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
3164
3165 * include/experimental/bits/simd.h (is_simd_flag_type): New.
3166 (_IsSimdFlagType): New.
3167 (copy_from, copy_to, load ctors): Constrain _Flags using
3168 _IsSimdFlagType.
3169
3170 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
3171
3172 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
3173 _Base::_S_divides if the optimized _S_divides function is hidden
3174 via the preprocessor.
3175
3176 2023-03-27 Jakub Jelinek <jakub@redhat.com>
3177
3178 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
3179 warning if size_t is not unsigned long.
3180
3181 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3182
3183 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
3184 Add overload, as per LWG 3893.
3185 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3186 Check assignment from nullptr.
3187
3188 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3189
3190 * include/std/format (formatter<const charT[N], charT>): Do not
3191 define partial speclialization, as per LWG 3833.
3192 * testsuite/std/format/formatter/requirements.cc: Check it.
3193
3194 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3195
3196 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
3197 as per LWG 3792.
3198 * testsuite/20_util/exchange/constexpr.cc: Check for it.
3199
3200 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3201
3202 * include/std/version (__cpp_lib_format): Define.
3203 * testsuite/std/format/functions/format.cc: Check it.
3204
3205 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3206
3207 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
3208 Pass rvalues to the callback, as now allowed by LWG 3645.
3209 Enforce preconditions on the return value.
3210 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3211 Adjust.
3212
3213 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3214
3215 * include/std/format: Add a comment noting that the resolution
3216 of LWG 3720 has been applied..
3217
3218 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3219
3220 * include/bits/regex.h (match_results): Add allocator-extended
3221 copy and move constructors, as per LWG 2195.
3222 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
3223
3224 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3225
3226 * include/bits/stream_iterator.h (istream_iterator): Add
3227 constexpr to copy constructor, as per LWG 3600.
3228 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
3229 Check copy construction.
3230
3231 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3232
3233 * include/experimental/bits/simd_x86.h
3234 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
3235 with __RECIPROCAL_MATH__.
3236
3237 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3238
3239 * include/experimental/bits/simd_detail.h: Don't define
3240 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
3241 * include/experimental/bits/simd_x86.h (_S_divides): Remove
3242 check for __clang__.
3243
3244 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3245
3246 * include/experimental/bits/simd_detail.h: Don't declare the
3247 simd API as constexpr with Clang.
3248 * include/experimental/bits/simd_x86.h (__movm): New.
3249 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
3250 and ?:.
3251 (_SimdImplX86::_S_masked_unary): Clang does not implement the
3252 same builtins. Implement the function using __movm, ?:, and -
3253 operators on vector_size types instead.
3254
3255 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3256
3257 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
3258 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
3259
3260 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3261
3262 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
3263 formatting.
3264
3265 2023-03-20 Marek Polacek <polacek@redhat.com>
3266
3267 PR c++/109159
3268 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
3269 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
3270 * testsuite/23_containers/span/explicit.cc: Likewise.
3271
3272 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3273
3274 PR libstdc++/109182
3275 * include/std/expected (expected<void>::expected(in_place_t)):
3276 Remove template-head.
3277
3278 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
3279
3280 PR libstdc++/109165
3281 * testsuite/18_support/coroutines/hash.cc: Use const object
3282 in second call.
3283
3284 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
3285
3286 PR libstdc++/109165
3287 * include/std/coroutine (hash<>::operator()): Add const.
3288 * testsuite/18_support/coroutines/hash.cc: New test.
3289
3290 2023-03-14 Patrick Palka <ppalka@redhat.com>
3291
3292 PR libstdc++/109111
3293 * include/std/ranges (repeat_view): Remove redundant parentheses
3294 in requires-clause.
3295 (repeat_view::_Iterator): Correct the requires-clause.
3296
3297 2023-03-14 Patrick Palka <ppalka@redhat.com>
3298
3299 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
3300 Define.
3301 (__cpp_lib_move_iterator_concept): Define for C++20.
3302 (move_iterator::iterator_concept): Strengthen as per P2520R0.
3303 * include/std/version (__cpp_lib_move_iterator_concept): Define
3304 for C++20.
3305 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
3306
3307 2023-03-14 Patrick Palka <ppalka@redhat.com>
3308
3309 * include/bits/ranges_util.h (view_interface::empty): Add
3310 preferred overloads that use ranges::size when the range is
3311 sized as per LWG 3715.
3312 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
3313
3314 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3315
3316 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
3317 Only define for C++17 and later.
3318
3319 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3320
3321 * src/Makefile.am: Add comment about linker script fragments.
3322 * src/Makefile.in: Regenerate.
3323
3324 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3325
3326 PR libstdc++/62196
3327 * include/bits/mask_array.h (mask_array): Add assertions to
3328 assignment operators.
3329 * include/std/valarray (valarray::operator[](valarray<bool>)):
3330 Add assertions.
3331 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
3332 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
3333 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
3334 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
3335 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
3336 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
3337 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
3338 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
3339 * testsuite/26_numerics/valarray/mask.cc: New test.
3340
3341 2023-03-13 Jakub Jelinek <jakub@redhat.com>
3342
3343 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3344 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3345
3346 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3347
3348 * doc/Makefile.am: Add comment referring to documentation.
3349 * doc/Makefile.in: Regenerate.
3350
3351 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3352
3353 * doc/html/*: Regenerate.
3354
3355 2023-03-13 Jonny Grant <jg@jguk.org>
3356
3357 * doc/xml/faq.xml: Update copyright year.
3358
3359 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3360
3361 * include/bits/allocator.h: Fix typo in comment.
3362
3363 2023-03-12 Jakub Jelinek <jakub@redhat.com>
3364
3365 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
3366 if it isn't mangled as DF16b but u6__bf16.
3367
3368 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3369
3370 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
3371 to https.
3372 * doc/html/manual/documentation_hacking.html: Regenerate.
3373
3374 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
3375
3376 PR libstdc++/109064
3377 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
3378 Remove self-recursion in __init__. Add missing _supports.
3379 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
3380 and unique().
3381
3382 2023-03-09 Patrick Palka <ppalka@redhat.com>
3383
3384 * include/std/ranges
3385 (cartesian_product_view::_Iterator::_Iterator): Remove
3386 constraint on default constructor as per LWG 3849.
3387 (cartesian_product_view::_Iterator::_M_prev): Adjust position
3388 of _Nm > 0 test as per LWG 3820.
3389 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
3390 checking only on sized cartesian products.
3391 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
3392
3393 2023-03-09 Patrick Palka <ppalka@redhat.com>
3394
3395 PR libstdc++/109024
3396 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
3397 LWG 3796.
3398 (repeat_view::_M_pred): Likewise.
3399 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
3400 * testsuite/std/ranges/repeat/1.cc (test05): New test.
3401
3402 2023-03-09 Patrick Palka <ppalka@redhat.com>
3403
3404 PR libstdc++/108362
3405 * include/std/ranges (__detail::__can_single_view): New concept.
3406 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
3407 end of the function declarator.
3408 (__detail::__can_iota_view): New concept.
3409 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
3410 end of the function declarator.
3411 (__detail::__can_istream_view): New concept.
3412 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
3413 end of the function declarator.
3414 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
3415 * testsuite/std/ranges/istream_view.cc (test08): New test.
3416 * testsuite/std/ranges/single_view.cc (test07): New test.
3417
3418 2023-03-09 Patrick Palka <ppalka@redhat.com>
3419
3420 PR libstdc++/107572
3421 * include/std/ranges (cartesian_product_view::end): When
3422 building the tuple of iterators, avoid calling ranges::begin on
3423 the first range if __empty_tail is false.
3424 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
3425
3426 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
3427
3428 PR libstdc++/108882
3429 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
3430 patterns.
3431
3432 2023-03-07 Jakub Jelinek <jakub@redhat.com>
3433
3434 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3435 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3436 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3437 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3438 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3439
3440 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3441
3442 PR libstdc++/108882
3443 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
3444 not match symbols in namespace std::__gnu_cxx11_ieee128.
3445 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
3446 std::__gnu_cxx11_ieee128::money_{get,put}.
3447
3448 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3449
3450 * libsupc++/eh_personality.cc: Fix spelling in comment.
3451
3452 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3453
3454 * testsuite/30_threads/async/async.cc (test04): Initialize
3455 steady_start, renamed from steady_begin, next to slow_start.
3456 Increase tolerance for final wait.
3457
3458 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3459
3460 * testsuite/libstdc++-prettyprinters/80276.cc: Add
3461 std::string to debug info.
3462 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3463
3464 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3465
3466 PR libstdc++/104852
3467 PR libstdc++/95989
3468 PR libstdc++/52590
3469 * include/bits/std_thread.h (thread::_M_thread_deps): New
3470 static implicitly-inline member function.
3471 (std::thread template ctor): Pass it to _M_start_thread.
3472 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
3473 parameter, force it live on entry.
3474
3475 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3476
3477 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3478 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3479 Likewise.
3480 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3481 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3482 Likewise.
3483
3484 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3485
3486 * include/bits/cow_string.h: Fix typo in comment.
3487
3488 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3489
3490 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
3491 current time zone cannot be determined.
3492 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
3493 HAVE_TZDB macro and test all members unconditionally.
3494
3495 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3496
3497 PR libstdc++/108952
3498 * include/bits/uses_allocator_args.h
3499 (uses_allocator_construction_args): Implement LWG 3527.
3500 * testsuite/20_util/pair/astuple/get-2.cc: New test.
3501 * testsuite/20_util/scoped_allocator/108952.cc: New test.
3502 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
3503
3504 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3505
3506 PR libstdc++/108846
3507 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
3508 Add __assign_one static member function.
3509 (__copy_move<true, false, RA>): Likewise.
3510 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
3511 value.
3512 (__copy_move_backward<IsMove, true, RA>): Likewise.
3513 * testsuite/25_algorithms/copy/108846.cc: New test.
3514 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
3515 * testsuite/25_algorithms/copy_n/108846.cc: New test.
3516 * testsuite/25_algorithms/move/108846.cc: New test.
3517 * testsuite/25_algorithms/move_backward/108846.cc: New test.
3518
3519 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3520
3521 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
3522 attributes.
3523
3524 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
3525
3526 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
3527 caveat to comment.
3528 * include/bits/basic_string.h (resize_and_overwrite): Add
3529 doxygen comment.
3530
3531 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3532
3533 * include/experimental/bits/simd.h: Line breaks and indenting
3534 fixed to follow the libstdc++ standard.
3535 * include/experimental/bits/simd_builtin.h: Likewise.
3536 * include/experimental/bits/simd_fixed_size.h: Likewise.
3537 * include/experimental/bits/simd_neon.h: Likewise.
3538 * include/experimental/bits/simd_ppc.h: Likewise.
3539 * include/experimental/bits/simd_scalar.h: Likewise.
3540 * include/experimental/bits/simd_x86.h: Likewise.
3541
3542 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3543
3544 PR libstdc++/108030
3545 * include/experimental/bits/simd_fixed_size.h
3546 (_SimdImplFixedSize::_S_broadcast): Replace inline with
3547 _GLIBCXX_SIMD_INTRINSIC.
3548 (_SimdImplFixedSize::_S_generate): Likewise.
3549 (_SimdImplFixedSize::_S_load): Likewise.
3550 (_SimdImplFixedSize::_S_masked_load): Likewise.
3551 (_SimdImplFixedSize::_S_store): Likewise.
3552 (_SimdImplFixedSize::_S_masked_store): Likewise.
3553 (_SimdImplFixedSize::_S_min): Likewise.
3554 (_SimdImplFixedSize::_S_max): Likewise.
3555 (_SimdImplFixedSize::_S_complement): Likewise.
3556 (_SimdImplFixedSize::_S_unary_minus): Likewise.
3557 (_SimdImplFixedSize::_S_plus): Likewise.
3558 (_SimdImplFixedSize::_S_minus): Likewise.
3559 (_SimdImplFixedSize::_S_multiplies): Likewise.
3560 (_SimdImplFixedSize::_S_divides): Likewise.
3561 (_SimdImplFixedSize::_S_modulus): Likewise.
3562 (_SimdImplFixedSize::_S_bit_and): Likewise.
3563 (_SimdImplFixedSize::_S_bit_or): Likewise.
3564 (_SimdImplFixedSize::_S_bit_xor): Likewise.
3565 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
3566 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
3567 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
3568 explicit about not always-inline, yet).
3569 (_SimdImplFixedSize::_S_isinf): Likewise.
3570 (_SimdImplFixedSize::_S_isfinite): Likewise.
3571 (_SimdImplFixedSize::_S_isnan): Likewise.
3572 (_SimdImplFixedSize::_S_isnormal): Likewise.
3573 (_SimdImplFixedSize::_S_signbit): Likewise.
3574
3575 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3576
3577 PR libstdc++/108856
3578 * include/experimental/bits/simd_builtin.h
3579 (_SimdImplBuiltin::_S_masked_unary): More efficient
3580 implementation of masked inc-/decrement for integers and floats
3581 without AVX2.
3582 * include/experimental/bits/simd_x86.h
3583 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
3584 builtins for masked inc-/decrement.
3585
3586 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3587
3588 * include/experimental/executor (executor): Constrain template
3589 constructors.
3590
3591 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3592
3593 * include/experimental/internet (basic_endpoint): Add missing
3594 constexpr to comparison operators.
3595 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
3596
3597 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3598
3599 * include/experimental/internet (network_v4::netmask()): Avoid
3600 undefined shift.
3601 (network_v4::broadcast()): Optimize and fix for targets with
3602 uint_least32_t wider than 32 bits.
3603 (network_v4::to_string(const Allocator&)): Fix for custom
3604 allocators and optimize using to_chars.
3605 (operator==(const network_v4&, const network_v4&)): Add missing
3606 constexpr.
3607 (operator==(const network_v6&, const network_v6&)): Likewise.
3608 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
3609 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
3610
3611 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3612
3613 * include/experimental/internet (address_4(const bytes_type&)):
3614 Use __builtin_bit_cast if available, otherwise convert to
3615 network byte order.
3616 (address_v4::to_bytes()): Likewise, but convert from network
3617 byte order.
3618 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3619 incorrect tests. Check for constexpr too.
3620 * testsuite/experimental/net/internet/address/v4/creation.cc:
3621 Likewise.
3622 * testsuite/experimental/net/internet/address/v4/members.cc:
3623 Check that bytes_type is a standard-layout type.
3624
3625 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3626
3627 * include/experimental/internet (address_v4::to_string):
3628 Optimize.
3629 * testsuite/experimental/net/internet/address/v4/members.cc:
3630 Check more addresses.
3631
3632 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3633
3634 * include/ext/aligned_buffer.h (__aligned_buffer): Add
3635 diagnostic pragmas.
3636
3637 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3638
3639 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
3640 before dg-do.
3641
3642 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3643
3644 * testsuite/experimental/simd/tests/reductions.cc: Introduce
3645 max_distance as the type-dependent max error.
3646
3647 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3648
3649 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
3650 int. The actual range of these indexes is very small.
3651
3652 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3653
3654 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
3655 (_S_bit_shift_right): Declare constexpr. The implementation was
3656 already expecting constexpr evaluation.
3657
3658 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3659
3660 PR libstdc++/108030
3661 * include/experimental/bits/simd_detail.h
3662 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
3663 __clang__.
3664
3665 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3666
3667 PR libstdc++/108030
3668 * include/experimental/bits/simd.h (__vector_broadcast):
3669 Implement via __vector_broadcast_impl instead of
3670 __call_with_n_evaluations + 2 lambdas.
3671 (__vector_broadcast_impl): New.
3672
3673 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3674
3675 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
3676 Avoid destruction of the mutex pool.
3677
3678 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3679
3680 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
3681 on vxworks.
3682 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3683 Likewise.
3684
3685 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3686
3687 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
3688 kernel mode.
3689
3690 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
3691
3692 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3693
3694 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
3695
3696 * include/experimental/bits/simd.h (__extract_part, split):
3697 Use reserved name for template parameter.
3698
3699 2023-02-20 Andreas Schwab <schwab@suse.de>
3700
3701 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3702
3703 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3704
3705 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
3706 * doc/html/faq.html: Regenerate.
3707
3708 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3709
3710 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
3711 between scalars requires the __bit_cast helper function instead
3712 of simd_bit_cast.
3713
3714 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3715
3716 * include/experimental/bits/simd_x86.h
3717 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
3718 (_SimdImplX86::_S_less_equal): Do not call
3719 __builtin_is_constant_evaluated in constexpr-if.
3720
3721 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3722
3723 * testsuite/experimental/simd/tests/bits/verify.h
3724 (verify::verify): Use %zx for size_t in format string.
3725
3726 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3727
3728 * testsuite/experimental/simd/generate_makefile.sh: Generate and
3729 pre-compile pch.h, which includes all headers that do not depend
3730 on command-line macros.
3731 * testsuite/experimental/simd/tests/bits/main.h: New file.
3732 (iterate_abis, main): Moved from verify.h.
3733 * testsuite/experimental/simd/tests/bits/verify.h
3734 (iterate_abis, main): Moved to main.h.
3735 * testsuite/experimental/simd/tests/bits/conversions.h: Add
3736 include guard.
3737 (genHalfBits): Simplify.
3738 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
3739 guard.
3740 (make_alternating_mask): Moved from mask_loadstore.
3741 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
3742 include guard.
3743 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
3744 * testsuite/experimental/simd/tests/mask_loadstore.cc
3745 (make_mask, make_alternating_mask): Removed.
3746 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3747 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
3748 Removed.
3749 * testsuite/experimental/simd/tests/abs.cc: Only include
3750 bits/main.h.
3751 Ditto.
3752 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3753 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3754 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3755 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
3756 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3757 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3758 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3759 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3760 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3761 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3762 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3763 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3764 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3765 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3766 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3767 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3768 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3769 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3770 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3771 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3772 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3773 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3774 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
3775 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3776 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3777 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3778 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3779 * testsuite/experimental/simd/tests/where.cc: Ditto.
3780
3781 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3782
3783 * testsuite/experimental/simd/README.md: Document the timeout
3784 and timeout-factor directives. Minor typo fixed.
3785
3786 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3787
3788 PR libstdc++/108030
3789 * include/experimental/bits/simd_detail.h: Define
3790 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3791 * include/experimental/bits/simd.h: Annotate lambdas with
3792 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3793 * include/experimental/bits/simd_builtin.h: Ditto.
3794 * include/experimental/bits/simd_converter.h: Ditto.
3795 * include/experimental/bits/simd_fixed_size.h: Ditto.
3796 * include/experimental/bits/simd_math.h: Ditto.
3797 * include/experimental/bits/simd_neon.h: Ditto.
3798 * include/experimental/bits/simd_x86.h: Ditto.
3799
3800 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3801
3802 * include/experimental/bits/simd.h
3803 (_SimdWrapper::_M_is_constprop_none_of)
3804 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
3805 computed result still satisfies __builtin_constant_p.
3806
3807 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3808
3809 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
3810 ellipsis character.
3811
3812 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3813
3814 * include/Makefile.am: Add new header.
3815 * include/Makefile.in: Regenerate.
3816 * include/experimental/synchronized_value: New file.
3817 * testsuite/experimental/synchronized_value.cc: New test.
3818
3819 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3820
3821 * include/experimental/optional: Fix header name in comment.
3822
3823 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3824
3825 * include/std/format (__format::_Arg_store): New class template.
3826 (basic_format_args): Remove nested type _Store and add deduction
3827 guide from _Arg_store.
3828 (basic_format_arg, make_format_args): Adjust.
3829 * testsuite/std/format/arguments/lwg3810.cc: New test.
3830
3831 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3832
3833 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
3834 constraints to constructors and add deleted overloads for the
3835 dangling cases, as per P2255R2.
3836 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
3837 make dangling cases ill-formed.
3838 * testsuite/20_util/pair/dangling_ref.cc: New test.
3839
3840 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3841
3842 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
3843
3844 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3845
3846 * include/ext/throw_allocator.h: Use reserved names for
3847 parameters.
3848
3849 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3850
3851 * testsuite/17_intro/names_pstl.cc: Add space after effective
3852 target name.
3853
3854 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3855
3856 * include/pstl/algorithm_fwd.h (__pattern_search_n)
3857 (__brick_unique_copy, __brick_adjacent_find)
3858 (__brick_generate_n, __pattern_generate_n): Use reserved names
3859 for parameters.
3860 * include/pstl/algorithm_impl.h (__brick_unique_copy)
3861 (__pattern_reverse, __brick_generate_n): Likewise.
3862 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
3863 (__prefer_parallel_tag): Likewise.
3864 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
3865 * include/pstl/glue_numeric_defs.h (adjacent_difference):
3866 Likewise.
3867 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
3868 Likewise.
3869 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
3870 * include/pstl/unseq_backend_simd.h (_Combiner)
3871 (__simd_min_element, __simd_minmax_element): Likewise.
3872 * testsuite/17_intro/names_pstl.cc: New test.
3873
3874 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3875
3876 * include/bits/fs_ops.h (create_directory): Use reserved name
3877 for parameter.
3878 * include/bits/ranges_algo.h (__contains_subrange_fn):
3879 Likewise.
3880 * include/bits/regex_automaton.h (_State_base::_M_print):
3881 Likewise.
3882 * include/bits/regex_automaton.tcc(_State_base::_M_print):
3883 Likewise.
3884 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
3885 * include/experimental/bits/fs_ops.h (create_directory):
3886 Likewise.
3887 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
3888 (recursive_timed_mutex:_M_clocklock): Likewise.
3889 * include/std/tuple (basic_common_reference): Likewise.
3890 * libsupc++/cxxabi_init_exception.h
3891 (__cxa_init_primary_exception): Likewise.
3892 * testsuite/17_intro/names.cc: Add checks.
3893
3894 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3895
3896 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
3897 to www.open-std.org and https.
3898 * doc/html/manual/status.html: Regenerate.
3899
3900 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3901
3902 PR libstdc++/103934
3903 * include/std/atomic (atomic_flag_wait): Add.
3904 (atomic_flag_wait_explicit): Add.
3905 (atomic_flag_notify): Add.
3906 (atomic_flag_notify_explicit): Add.
3907 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
3908 Add test case to cover missing atomic_flag free functions.
3909
3910 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3911
3912 PR libstdc++/103934
3913 * include/std/atomic (atomic_flag_test): Add.
3914 (atomic_flag_test_explicit): Add.
3915 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
3916 test case to cover missing atomic_flag free functions.
3917 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
3918 Likewise.
3919
3920 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
3921
3922 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
3923 "The Component Object Model" reference.
3924 * doc/html/manual/policy_data_structures.html: Regenerate.
3925
3926 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3927
3928 * doc/xml/manual/containers.xml: Tweak a link to N1780
3929 (C++ standard).
3930 * doc/html/manual/associative.html: Regenerate.
3931
3932 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3933
3934 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
3935 * doc/html/manual/facets.html: Regenerate.
3936
3937 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3938
3939 * doc/xml/manual/policy_data_structures_biblio.xml: Update
3940 link to "Worst-case efficient priority queues".
3941 * doc/html/manual/policy_data_structures.html: Regenerate.
3942
3943 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3944
3945 * doc/xml/manual/using.xml: Document newly-freestanding
3946 headers and the effect of the -ffreestanding flag.
3947 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
3948 completed.
3949 * doc/xml/manual/configure.xml: Document that hosted installs
3950 respect __STDC_HOSTED__.
3951 * doc/xml/manual/test.xml: Document how to run tests in
3952 freestanding mode.
3953 * doc/html/*: Regenerate.
3954
3955 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3956
3957 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
3958 (__find_last_if_fn): Likewise.
3959
3960 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3961
3962 * include/std/type_traits: Add diagnostic pragmas around
3963 references to deprecated std::aligned_storage and
3964 std::aligned_union traits.
3965 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
3966 Add dg-warning for et c++23.
3967 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
3968 Likewise.
3969 * testsuite/20_util/aligned_storage/value.cc: Likewise.
3970 * testsuite/20_util/aligned_union/1.cc: Likewise.
3971 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
3972 Likewise.
3973
3974 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3975
3976 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
3977 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
3978 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
3979 * include/std/type_traits (aligned_storage, aligned_union)
3980 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
3981 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
3982 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
3983
3984 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3985
3986 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
3987 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
3988 consistent with other 'deprecated' macros.
3989 * include/std/type_traits (is_pod, is_pod_v): Use
3990 _GLIBCXX20_DEPRECATED_SUGGEST instead.
3991
3992 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3993
3994 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
3995 * Makefile.in: Regenerate.
3996 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
3997 There's no history to be compatible with.
3998 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
3999 source files from the build.
4000 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4001 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4002 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
4003 * src/Makefile.in: Regenerate.
4004 * src/c++11/Makefile.in: Regenerate.
4005 * src/c++17/Makefile.in: Regenerate.
4006 * src/c++20/Makefile.in: Regenerate.
4007 * src/c++98/Makefile.in: Regenerate.
4008
4009 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
4010
4011 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
4012 filesystem, libbacktrace and experimental.
4013 * src/Makefile.in: Regenerate.
4014
4015 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
4016
4017 PR libstdc++/108672
4018 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
4019 instead of int32_t.
4020
4021 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
4022
4023 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
4024 * doc/html/manual/documentation_hacking.html: Regenerate.
4025
4026 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
4027
4028 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
4029 storage to the move-from instance when allocators are equal.
4030 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
4031 New test case.
4032
4033 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
4034
4035 * config/os/gnu-linux/os_defines.h [!__linux__]
4036 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
4037
4038 2023-02-03 Patrick Palka <ppalka@redhat.com>
4039
4040 * include/bits/ranges_algo.h (__find_last_fn, find_last):
4041 Define.
4042 (__find_last_if_fn, find_last_if): Define.
4043 (__find_last_if_not_fn, find_last_if_not): Define.
4044 * testsuite/25_algorithms/find_last/1.cc: New test.
4045 * testsuite/25_algorithms/find_last_if/1.cc: New test.
4046 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
4047
4048 2023-02-03 Patrick Palka <ppalka@redhat.com>
4049
4050 * include/bits/ranges_algo.h (out_value_result): Define.
4051 (iota_result): Define.
4052 (__iota_fn, iota): Define.
4053 * testsuite/25_algorithms/iota/1.cc: New test.
4054
4055 2023-02-03 Patrick Palka <ppalka@redhat.com>
4056
4057 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
4058 (__contains_subrange_fn, contains_subrange): Define.
4059 * testsuite/25_algorithms/contains/1.cc: New test.
4060 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
4061
4062 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4063
4064 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
4065 * doc/html/manual/abi.html: Regenerate.
4066
4067 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4068
4069 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
4070 errc::function_not_supported instead of errc::not_supported.
4071
4072 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4073
4074 * include/std/sstream (basic_stringbuf::view): Define for old
4075 std::string ABI.
4076 (basic_istringstream::view, basic_0stringstream::view)
4077 (basic_stringstream::view): Likewise.
4078 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
4079 { dg-require-effective-target cxx11_abi }.
4080 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
4081 Likewise.
4082 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
4083 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
4084 Likewise.
4085 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
4086 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
4087 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
4088 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
4089 Likewise.
4090
4091 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4092
4093 PR libstdc++/108636
4094 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
4095 conversion operators for directory iterator comparisons with
4096 std::default_sentinel_t.
4097 * include/bits/fs_path.h (path::path(string_view, _Type))
4098 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
4099 definitions to ...
4100 * src/c++17/fs_path.cc: ... here.
4101 * testsuite/27_io/filesystem/path/108636.cc: New test.
4102
4103 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
4104
4105 * include/std/variant (variant::operator=): Implement resolution
4106 of LWG 3585.
4107 * testsuite/20_util/variant/lwg3585.cc: New test.
4108
4109 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4110
4111 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
4112 link to https.
4113 * doc/html/manual/using_exceptions.html: Regenerate.
4114
4115 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
4116
4117 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
4118 * doc/html/manual/debug.html: Regenerate.
4119
4120 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4121
4122 * src/c++11/random.cc (random_device::_M_fini): Do not try to
4123 close the file handle if the target doesn't support the
4124 /dev/random and /dev/urandom files.
4125
4126 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4127
4128 * config/os/generic/error_constants.h (errc::value_too_large)
4129 [__AVR__]: Define.
4130 * src/c++11/system_error.cc
4131 (system_category::default_error_condition) [__AVR__]: Only match
4132 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
4133 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
4134 for ENOENT etc. in switch.
4135 (fs::remove_all) [__AVR__]: Likewise.
4136 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
4137 close etc.
4138
4139 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
4140
4141 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
4142 embed_zoneinfo=no
4143 * configure: Regenerate.
4144
4145 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
4146
4147 PR testsuite/108632
4148 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
4149 struct at end of S0.
4150
4151 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
4152
4153 * doc/xml/manual/shared_ptr.xml: Move links from both
4154 http://open-std.org and http://www.open-std.org to
4155 https://www.open-std.org.
4156 * doc/html/manual/memory.html: Regenerate.
4157
4158 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4159
4160 * doc/xml/manual/appendix_contributing.xml: Adjust link to
4161 ISO C++ standard at ANSI.
4162 Move link to www.open-std.org to https.
4163 * doc/html/manual/appendix_contributing.html: Regenerate.
4164
4165 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4166
4167 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
4168 links to https.
4169 * doc/html/manual/documentation_hacking.html: Regenerate.
4170
4171 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4172
4173 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
4174 * doc/html/manual/abi.html: Regenerate.
4175
4176 2023-01-27 Jakub Jelinek <jakub@redhat.com>
4177
4178 PR libstdc++/108568
4179 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
4180 include features.h if present and then check __GLIBC__ and
4181 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
4182 __GLIBC_PREREQ which isn't defined yet.
4183
4184 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
4185
4186 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
4187 string literal.
4188
4189 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
4190
4191 PR libstdc++/108554
4192 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
4193
4194 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4195
4196 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
4197 rules named "+" for compatibility with older tzdata.zi files.
4198
4199 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4200
4201 PR libstdc++/108554
4202 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
4203 nonnull attribute.
4204 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
4205 attributes.
4206 * testsuite/23_containers/map/modifiers/108554.cc: New test.
4207
4208 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4209
4210 PR libstdc++/108530
4211 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
4212 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
4213
4214 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4215
4216 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
4217 use https.
4218 * doc/html/manual/bugs.html: Regenerate.
4219
4220 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4221
4222 PR libstdc++/108530
4223 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
4224 /etc/sysconfig/clock.
4225
4226 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4227
4228 PR libstdc++/102301
4229 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
4230 std::make_reverse_iterator.
4231 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
4232 (make_from_tuple): Add static assertion from P2255 to diagnose
4233 dangling references.
4234 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
4235 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
4236
4237 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
4238
4239 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
4240 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
4241 (_Safe_iterator::operator++(int)): Use latter.
4242 (_Safe_iterator::operator--(int)): Likewise.
4243 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
4244 check.
4245 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
4246 New.
4247 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
4248 (_Safe_local_iterator::operator++(int)): Use latter.
4249 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
4250 entry associated to the array entry.
4251
4252 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4253
4254 * include/bits/fs_path.h (u8path): Add deprecated attribute.
4255 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
4256 -Wno-deprecated-declarations for C++20 and later.
4257 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4258 Likewise.
4259 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4260 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4261 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
4262
4263 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4264
4265 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
4266 Always call _M_fini and _M_getentropy.
4267
4268 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
4269
4270 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
4271 to www.open-std.org to use https.
4272 (COM: Component Model Object Technologies): Rename from...
4273 (The Component Object Model): ...to.
4274 * doc/html/manual/policy_data_structures.html: Regenerate.
4275
4276 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
4277
4278 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
4279 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
4280 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
4281
4282 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
4283
4284 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
4285 of $host. Fix check for file being present during native build.
4286 * configure: Regenerate.
4287
4288 2023-01-17 Martin Liska <mliska@suse.cz>
4289
4290 * src/libbacktrace/Makefile.in: Regenerate.
4291
4292 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4293
4294 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
4295
4296 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4297
4298 PR libstdc++/108413
4299 * include/c_compatibility/stdatomic.h: Change copyright line to
4300 be consistent with other headers contributed under DCO terms.
4301 * include/std/expected: Add full stop to copyright line.
4302 * src/c++20/tzdb.cc: Likewise.
4303
4304 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
4305
4306 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
4307 https.
4308 * doc/xml/manual/status_cxx2017.xml: Ditto.
4309 * doc/xml/manual/status_cxx2020.xml: Ditto.
4310 * doc/xml/manual/status_cxx2023.xml: Ditto.
4311 * doc/html/manual/status.html: Regenerate.
4312
4313 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4314
4315 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
4316 and fail gracefully if defining the weak symbol doesn't work.
4317
4318 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
4319
4320 PR libstdc++/108288
4321 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
4322 fix to other iterator category.
4323 (_Safe_iterator<>::operator--(int)): Likewise.
4324 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
4325 Fix deadlock.
4326 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
4327 (invalid_local_iterator_post_increment): New.
4328 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
4329 New test.
4330 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
4331 New test.
4332
4333 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4334
4335 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
4336 dg-options.
4337
4338 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4339
4340 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
4341
4342 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4343
4344 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
4345 windows.h. Add pecoff as FORMAT_FILE.
4346 * config.h.in: Regenerate.
4347 * configure: Regenerate.
4348 * src/libbacktrace/Makefile.am: Regenerate.
4349 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
4350
4351 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4352
4353 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
4354 raw __name if __cxa_demangle could not demangle it.
4355
4356 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4357
4358 PR libstdc++/108409
4359 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
4360 variable.
4361
4362 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4363
4364 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
4365 loading tzdb.
4366 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
4367 effective target.
4368 * testsuite/std/time/tzdb_list/1.cc: Likewise.
4369
4370 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4371
4372 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
4373 --with-libstdcxx-zoneinfo-dir configure option with
4374 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
4375 a directory.
4376 * config.h.in: Regenerate.
4377 * configure: Regenerate.
4378 * doc/xml/manual/configure.xml: Document configure option.
4379 * doc/html/manual/configure.html: Regenerate.
4380 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
4381 * src/c++20/Makefile.in: Regenerate.
4382 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
4383 null pointer if no directory is configured.
4384 (zoneinfo_dir): Replace with ...
4385 (zoneinfo_file): New function.
4386 (tzdata_stream): New istream class.
4387 (remote_version, reload_tzdb): Use tzdata_stream.
4388 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
4389 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
4390 tzdata.zi file in default location.
4391 * src/c++20/tzdata.zi: New file.
4392
4393 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4394
4395 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
4396 * testsuite/std/time/month_day/io.cc: New test.
4397 * testsuite/std/time/month_day_last/io.cc: New test.
4398 * testsuite/std/time/month_weekday/io.cc: New test.
4399 * testsuite/std/time/month_weekday_last/io.cc: New test.
4400 * testsuite/std/time/weekday_indexed/io.cc: New test.
4401 * testsuite/std/time/weekday_last/io.cc: New test.
4402 * testsuite/std/time/year_month/io.cc: New test.
4403 * testsuite/std/time/year_month_day_last/io.cc: New test.
4404 * testsuite/std/time/year_month_weekday/io.cc: New test.
4405 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
4406
4407 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
4408
4409 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
4410 specifications.
4411 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
4412 export.
4413
4414 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4415
4416 * include/bits/std_mutex.h: Include <errno.h>.
4417
4418 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4419
4420 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
4421 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
4422 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
4423 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
4424 std::make_unique with a freestanding-compatible wrapper around
4425 unique_ptr.
4426 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4427 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
4428 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4429 Ditto.
4430 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
4431 of __cpp_lib_ranges in !HOSTED.
4432
4433 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4434
4435 * include/Makefile.am: Install bits/char_traits.h,
4436 std/string_view
4437 * include/Makefile.in: Regenerate.
4438 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
4439 mbstate-only bits behind appropriate #ifs.
4440 * include/std/string_view: Gate <iostream> functionality behind
4441 HOSTED.
4442 * include/std/version: Enable __cpp_lib_constexpr_string_view
4443 and __cpp_lib_starts_ends_with in !HOSTED.
4444 * include/std/ranges: Re-enable __is_basic_string_view on
4445 freestanding, include <string_view> directly.
4446 * include/precompiled/stdc++.h: Include <string_view> when
4447 !HOSTED too.
4448 * testsuite/20_util/function_objects/searchers.cc: Skip testing
4449 boyer_moore searchers on freestanding
4450 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
4451 <string>-related tests behind __STDC_HOSTED__.
4452 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
4453 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
4454 unused <stdexcept> include.
4455 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
4456 unused <vector> include.
4457 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
4458 Guard <string> related testing behind __STDC_HOSTED__.
4459 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4460 Guard <stdexcept> related tests behind __STDC_HOSTED__.
4461 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4462 Ditto.
4463 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4464 Guard <stdexcept> tests behind __STDC_HOSTED__.
4465 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4466 Enable test on freestanding, guard <stdexcept> bits behind
4467 __STDC_HOSTED__.
4468 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4469 Guard <stdexcept> bits behind __STDC_HOSTED__.
4470 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4471 Ditto.
4472
4473 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
4474
4475 PR libstdc++/86419
4476 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
4477 errors in incomplete multibyte sequences.
4478 (utf16_in): Remove surrogates parameter. Fix conditions for
4479 returning partial.
4480 (utf16_out): Fix condition for returning partial.
4481 (ucs2_in): Do not pass surrogates argument to utf16_in.
4482 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
4483 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
4484 tests.
4485 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
4486 test.
4487
4488 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4489
4490 PR libstdc++/108331
4491 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
4492 __GTHREAD_LEGACY_MUTEX_T if defined.
4493
4494 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4495
4496 PR libstdc++/108327
4497 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
4498 Export __try_use_facet specializations for facets in namespace
4499 __gnu_cxx_ldbl128.
4500 * config/os/gnu-linux/ldbl-ieee128-extra.ver
4501 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
4502 __gnu_cxx_ieee128.
4503 * testsuite/util/testsuite_abi.cc: Add to lists of known and
4504 latest versions.
4505
4506 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4507
4508 * include/bits/std_mutex.h: Remove <system_error> include.
4509 * include/std/condition_variable: Add <bits/error_constants.h>
4510 include.
4511 * include/std/mutex: Likewise.
4512 * include/std/shared_mutex: Likewise.
4513
4514 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4515
4516 PR libstdc++/77691
4517 * include/experimental/memory_resource
4518 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
4519 (do_allocate, do_deallocate): Check it.
4520 * testsuite/experimental/memory_resource/new_delete_resource.cc:
4521 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
4522
4523 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4524
4525 * doc/xml/manual/abi.xml: Add latest library versions.
4526 * doc/html/manual/abi.html: Regenerate.
4527
4528 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
4529
4530 PR libstdc++/107189
4531 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
4532 unused _Alloc_node instance.
4533
4534 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4535
4536 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
4537 Define as unsigned long if always lock-free, and unsigned int
4538 otherwise.
4539
4540 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4541
4542 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
4543 __catch macros for exception handling.
4544
4545 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4546
4547 PR libstdc++/108221
4548 * include/bits/stl_algobase.h (__lg): Replace six overloads with
4549 a single function template for all integer types.
4550 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
4551 arithmetic results back to _Distance.
4552
4553 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4554
4555 PR libstdc++/108221
4556 * include/std/span (span::span()): Un-simplify constraint to
4557 work for size_t of lesser rank than int.
4558
4559 2023-01-07 LIU Hao <lh_mouse@126.com>
4560
4561 PR middle-end/108300
4562 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
4563 <windows.h>.
4564 * src/c++11/thread.cc: Likewise.
4565 * src/c++17/fs_ops.cc: Likewise.
4566 * src/filesystem/ops.cc: Likewise.
4567
4568 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4569
4570 PR libstdc++/108228
4571 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
4572
4573 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4574
4575 PR libstdc++/108235
4576 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
4577 template and partial specialization for synchronizing access to
4578 time_zone::_Impl::infos.
4579 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
4580 rules_counter.
4581
4582 2023-01-06 Patrick Palka <ppalka@redhat.com>
4583
4584 PR libstdc++/108260
4585 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
4586 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
4587 (__cpp_lib_ranges_chunk): Likewise.
4588 (__cpp_lib_ranges_slide): Likewise.
4589 (__cpp_lib_ranges_chunk_by): Likewise.
4590 (__cpp_lib_ranges_join_with): Likewise.
4591 (__cpp_lib_ranges_repeat): Likewise.
4592 (__cpp_lib_ranges_stride): Likewise.
4593 (__cpp_lib_ranges_cartesian_product): Likewise.
4594 (__cpp_lib_ranges_as_rvalue): Likewise.
4595 * include/std/version: Ditto.
4596 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
4597 feature-test macro.
4598 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
4599 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
4600 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
4601 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
4602 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
4603 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
4604 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
4605 * testsuite/std/ranges/repeat/1.cc: Likewise.
4606 * testsuite/std/ranges/zip/1.cc: Likewise.
4607 * testsuite/std/ranges/version_c++23.cc: New test.
4608
4609 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4610
4611 PR libstdc++/108214
4612 * include/std/bitset (operator>>): Use alloca in the right
4613 scope, not in a constructor.
4614 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
4615
4616 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4617
4618 PR libstdc++/108221
4619 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
4620 Disable visiting floating-point types.
4621
4622 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4623
4624 PR libstdc++/108288
4625 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
4626 (_Safe_iterator::operator--(int)): Do not hold lock around
4627 construction of return value.
4628
4629 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
4630
4631 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
4632 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
4633 lock release. Revise loop.
4634 (__atomic_add): Likewise.
4635
4636 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4637
4638 PR libstdc++/108212
4639 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
4640 variable.
4641 (StdChronoTimePointPrinter::to_string): Use it.
4642
4643 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4644
4645 PR libstdc++/108290
4646 * include/std/functional (_Bind_front): Add no_unique_address
4647 attribute to data members.
4648 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
4649 size of call wrappers with empty types for targets and bound
4650 arguments.
4651
4652 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4653
4654 PR libstdc++/108211
4655 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
4656 using only last component of the name.
4657
4658 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4659
4660 PR libstdc++/108228
4661 PR libstdc++/108235
4662 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
4663 the latest symbol version.
4664 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
4665 atomic<_Node*> is not always lock free.
4666 (USE_ATOMIC_LIST_HEAD): New macro.
4667 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
4668 definition of weak symbol.
4669 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
4670 (tzdb_list::_Node::_S_list_head): New function for accessing
4671 list head efficiently.
4672 (tzdb_list::_Node::_S_cache_list_head): New function for
4673 updating _S_list_head.
4674
4675 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4676
4677 PR libstdc++/108265
4678 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
4679 duration rep is unsigned.
4680 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
4681
4682 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
4683
4684 PR libstdc++/108228
4685 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
4686 Add __gnu_cxx::zoneinfo_dir_override().
4687
4688 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
4689
4690 PR libstdc++/108258
4691 * include/std/array (__array_traits<T, 0>::operator T*()): Add
4692 constexpr.
4693 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
4694 std::array<T, 0>::data().
4695
4696 \f
4697 Copyright (C) 2023 Free Software Foundation, Inc.
4698
4699 Copying and distribution of this file, with or without modification,
4700 are permitted in any medium without royalty provided the copyright
4701 notice and this notice are preserved.