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