hppa: Modify TLS patterns to provide both 32 and 64-bit support.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob9cdd52b5e9c53b4773348a37bda7cf3f4a5dfe03
1 2023-07-13  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/110653
4         * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
5         depend on _GLIBCXX_USE_C99_STDLIB.
6         [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
7         in terms of stol and stoul respectively.
8         [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
9         of stod.
11 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
13         PR libstdc++/95048
14         * testsuite/27_io/filesystem/path/construct/95048.cc: Check
15         conversions to wide strings.
16         * testsuite/experimental/filesystem/path/construct/95048.cc:
17         Likewise.
19 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
21         * config/io/basic_file_stdio.cc: Define LFS macros.
22         (__basic_file<char>::open): Use fopen unconditionally.
23         (get_file_offset): Use lseek unconditionally.
24         (__basic_file<char>::seekoff): Likewise.
25         (__basic_file<char>::showmanyc): Use fstat unconditionally.
27 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
29         PR libstdc++/110574
30         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
31         and define _GLIBCXX_USE_FSEEKO_FTELLO.
32         * config.h.in: Regenerate.
33         * configure: Regenerate.
34         * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
35         Check for fwrite error correctly.
36         (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
37         fread error correctly.
38         (get_file_offset): New function.
39         (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
40         fseeko if available. Use get_file_offset instead of return value
41         of fseek.
42         (__basic_file<char>::showmanyc): Use get_file_offset.
44 2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>
46         * include/std/type_traits (__make_unsigned_selector): Use
47         __is_enum built-in trait.
48         (__make_signed_selector): Likewise.
49         (__underlying_type_impl): Likewise.
51 2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
53         * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
54         first argument.
56 2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
58         PR libstdc++/110574
59         * doc/xml/manual/configure.xml: Describe stdio_pure argument to
60         --enable-cstdio.
61         * doc/html/manual/configure.html: Regenerate.
63 2023-07-05  Thomas Rodgers  <trodgers@redhat.com>
65         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
66         file.
67         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
68         New file.
69         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
70         Likewise.
71         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
72         Likewise.
73         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
74         Likewise.
75         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
76         Likewise.
78 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
80         * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
81         Skip as UNSUPPORTED for C++98 mode.
82         * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
83         Likewise.
85 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
87         PR libstdc++/110542
88         * include/bits/stl_uninitialized.h (__uninitialized_default_n):
89         Do not use std::fill_n during constant evaluation.
91 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
93         * include/bits/vector.tcc (_M_default_append): Replace try-block
94         with RAII types.
96 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
98         * include/bits/iterator_concepts.h (projected): Add typename.
100 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
102         * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
103         wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
105 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
107         * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
108         _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
109         Define to OpenMP 5.0 pragmas even for GCC 10.0+.
110         (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
112 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
114         * include/bits/alloc_traits.h (_Destroy): Qualify call.
115         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
116         * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
118 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
120         * testsuite/lib/libstdc++.exp: Remove additional flag handled
121         by Darwin specs.
123 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
125         PR libstdc++/110432
126         * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
127         * config.h.in: Regenerate.
128         * configure: Regenerate.
129         * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
130         * include/std/iostream: Use new autoconf macro as well as
131         __has_attribute.
132         * src/c++98/ios_base_init.h: Use new autoconf macro instead of
133         __has_attribute.
135 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
137         * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
138         attribute.
140 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
142         PR libstdc++/105081
143         * src/c++11/random.cc (random_device::_M_init): Throw
144         std::system_error when the requested device is a valid token but
145         not available at runtime.
147 2023-06-30  Hans-Peter Nilsson  <hp@axis.com>
149         PR libstdc++/108672
150         * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
151         __INT32_TYPE__ instead of int32_t.
153 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
155         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
156         with USE_ATOMIC_LIST_HEAD.
157         (list_mutex): Replace global object with function. Use local
158         static object when std::mutex constructor isn't constexpr.
160 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
162         PR libstdc++/110462
163         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
164         copy_file_range can be called with loff_t* arguments.
165         * configure: Regenerate.
166         * src/filesystem/ops-common.h (copy_file_copy_file_range):
167         Use loff_t for offsets.
169 2023-06-29  Tom Tromey  <tromey@adacore.com>
171         * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
172         regexp.
174 2023-06-28  Jan Hubicka  <jh@suse.cz>
176         PR middle-end/109849
177         * include/bits/c++config (std::__terminate): Mark cold.
178         * include/bits/functexcept.h: Mark everything as cold.
179         * libsupc++/exception: Mark terminate and unexpected as cold.
181 2023-06-26  Thomas Rodgers  <trodgers@redhat.com>
183         * include/pstl/algorithm_fwd.h: Synchronize with upstream.
184         * include/pstl/algorithm_impl.h: Likewise.
185         * include/pstl/execution_defs.h: Likewise.
186         * include/pstl/execution_impl.h: Likewise.
187         * include/pstl/glue_algorithm_impl.h: Likewise.
188         * include/pstl/glue_execution_defs.h: Likewise.
189         * include/pstl/glue_memory_impl.h: Likewise.
190         * include/pstl/glue_numeric_impl.h: Likewise.
191         * include/pstl/memory_impl.h: Likewise.
192         * include/pstl/numeric_fwd.h: Likewise.
193         * include/pstl/numeric_impl.h: Likewise.
194         * include/pstl/parallel_backend.h: Likewise.
195         * include/pstl/parallel_backend_serial.h: Likewise.
196         * include/pstl/parallel_backend_tbb.h: Likewise.
197         * include/pstl/parallel_impl.h: Likewise.
198         * include/pstl/pstl_config.h: Likewise.
199         * include/pstl/unseq_backend_simd.h: Likewise.
200         * include/pstl/utils.h: Likewise.
201         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
202         Likewise.
203         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
204         Likewise.
205         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
206         Likewise.
207         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
208         Likewise.
209         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
210         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
211         Likewise.
212         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
213         Likewise.
214         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
215         Likewise.
216         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
217         Likewise.
218         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
219         Likewise.
220         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
221         Likewise.
222         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
223         Likewise.
224         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
225         Likewise.
226         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
227         Likewise.
228         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
229         Likewise.
230         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
231         Likewise.
232         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
233         Likewise.
234         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
235         Likewise.
236         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
237         Likewise.
238         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
239         Likewise.
240         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
241         Likewise.
242         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
243         Likewise.
244         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
245         Likewise.
246         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
247         Likewise.
248         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
249         Likewise.
250         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
251         Likewise.
252         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
253         Likewise.
254         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
255         Likewise.
256         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
257         Likewise.
258         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
259         Likewise.
260         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
261         Likewise.
262         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
263         Likewise.
264         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
265         Likewise.
266         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
267         Likewise.
268         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
269         Likewise.
270         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
271         Likewise.
272         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
273         Likewise.
274         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
275         Likewise.
276         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
277         Likewise.
278         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
279         Likewise.
280         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
281         Likewise.
282         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
283         Likewise.
284         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
285         Likewise.
286         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
287         Likewise.
288         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
289         Likewise.
290         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
291         Likewise.
292         * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
293         Likewise.
294         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
295         Likewise.
296         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
297         Likewise.
298         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
299         Likewise.
300         * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
301         Likewise.
302         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
303         Likewise.
304         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
305         Likewise.
306         * testsuite/util/pstl/test_utils.h:
307         Likewise.
309 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
311         PR libstdc++/110239
312         * include/std/format (__format::__parse_integer): Fix buffer
313         overflow for wide chars.
314         (formatter<const void*, C>::format): Cast to uintptr_t instead
315         of uint64_t.
316         * testsuite/std/format/string.cc: Test too-large widths.
318 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
320         * include/bits/iterator_concepts.h (projected): Replace class
321         template with alias template denoting an ADL-proofed helper.
322         (incremental_traits<projected<Iter, Proj>>): Remove.
323         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
324         New test.
326 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
328         * include/debug/helper_functions.h (__get_distance)
329         (__check_singular, __valid_range_aux, __valid_range): Qualify
330         calls to disable ADL.
331         (__check_singular_aux(const _Safe_iterator_base*)): Declare
332         overload that was previously found via ADL.
334 2023-06-23  Jonathan Wakely  <jwakely@redhat.com>
336         * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
337         with RAII types.
339 2023-06-20  Jonathan Wakely  <jwakely@redhat.com>
341         * include/std/array (to_array(T(&)[N])): Remove redundant
342         condition.
343         (to_array(T(&&)[N])): Remove redundant std::move.
345 2023-06-16  Alexandre Oliva  <oliva@adacore.com>
347         * testsuite/20_util/from_chars/4.cc: Skip long double on
348         aarch64-rtems.
350 2023-06-16  Joel Brobecker  <brobecker@adacore.com>
352         * configure.ac ["x${with_newlib}" = "xyes"]: Define
353         HAVE_HYPOTF.  Add compile-checks for various long double
354         math functions as well.
355         * configure: Regenerate.
357 2023-06-14  Jonny Grant  <jg@jguk.org>
359         * doc/xml/manual/extensions.xml: Remove demangle exception
360         description and include.
361         * doc/html/manual/ext_demangling.html: Regenerate.
363 2023-06-10  Hans-Peter Nilsson  <hp@axis.com>
365         * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
366         [! SIMULATOR_TEST]: Also exclude running test05.
367         * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
369 2023-06-09  Ken Matsui  <kmatsui@cs.washington.edu>
371         * include/std/type_traits: Use using instead of typedef
373 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
375         PR libstdc++/110077
376         * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
377         Only define if _Float128 and long double have different
378         representations.
380 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
382         PR libstdc++/100285
383         * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
384         (basic_endpoint, basic_resolver_entry, resolver_base)
385         (basic_resolver_results, basic_resolver): Only define if the tcp
386         or udp protocols will be defined.
388 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
390         * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
391         * configure: Regenerate.
392         * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
393         * doc/html/manual/abi.html: Regenerate.
395 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
397         PR libstdc++/110149
398         * include/std/format (formatter<const void*, charT>::parse):
399         Only alow 0 and P for C++26 and non-strict modes.
400         (formatter<const void*, charT>::format): Use toupper for P
401         type, and insert zero-fill characters for 0 option.
402         * testsuite/std/format/functions/format.cc: Check pointer
403         formatting. Only check P2510R3 extensions conditionally.
404         * testsuite/std/format/parse_ctx.cc: Only check P2510R3
405         extensions conditionally.
407 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
409         PR libstdc++/110167
410         * include/std/array (to_array): Initialize arrays of trivial
411         types using memcpy. For non-trivial types, use lambda
412         expressions instead of a separate helper function.
413         (__to_array): Remove.
414         * testsuite/23_containers/array/creation/110167.cc: New test.
416 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
418         * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
419         Removed.
420         * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
421         Removed.
422         * testsuite/23_containers/list/modifiers/emplace/52799.cc:
423         Removed.
424         * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
425         Removed.
426         * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
427         Removed.
428         * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
429         Removed.
430         * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
431         test.
432         * testsuite/23_containers/list/modifiers/emplace/1.cc: New
433         test.
434         * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
435         test.
437 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
439         PR libstdc++/110145
440         * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
441         (double_to_chars_test_cases,
442         double_scientific_precision_to_chars_test_cases_2,
443         double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
444         and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
445         Add unconditional tests with corresponding double constants
446         0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
447         0x1.7440bbff418b9p-18.
449 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
451         * testsuite/util/testsuite_abi.cc (check_version): Re-add
452         CXXABI_1.3.14.
454 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
456         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
457         Require effective target exceptions_enabled instead of using
458         dg-skip-if.
459         * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
460         shrink_to_fit() to be a no-op without exceptions enabled.
461         * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
462         Likewise.
463         * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
464         Require effective target exceptions_enabled.
465         * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
466         Likewise.
467         * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
468         Likewise.
469         * testsuite/ext/new_allocator/check_allocate_max_size.cc:
470         Likewise.
471         * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
472         Likewise.
473         * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
474         Likewise.
476 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
478         * testsuite/20_util/duration/cons/2.cc: Use values that aren't
479         affected by rounding.
480         * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
481         double before comparing for equality.
482         * testsuite/20_util/from_chars/6.cc: Likewise.
483         * testsuite/20_util/variant/86874.cc: Use values that aren't
484         affected by rounding.
485         * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
486         original value instead of to floating-point-literal.
487         * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
488         Cast arithmetic result to double before comparing for equality.
489         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
490         Likewise.
491         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
492         Likewise.
493         * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
494         the absolute difference is less than 0.01 instead of comparing
495         to two decimal places.
496         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
497         Cast arithmetic result to double before comparing for equality.
498         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
499         Likewise.
500         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
501         Likewise.
502         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
503         Likewise.
504         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
505         Likewise.
506         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
507         Likewise.
508         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
510 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
512         Revert:
513         2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
515         * configure.ac: Use AS_IF.
516         * configure: Regenerate.
518 2023-06-07  Thomas Schwinge  <thomas@codesourcery.com>
520         * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
521         'UNSUPPORTED: [...]: exception handling disabled'.
523 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
525         * testsuite/util/testsuite_abi.cc (check_version): Add
526         CXXABI_1.3.15 symver and make it the latestp. Remove
527         GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
529 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
530             Jakub Jelinek  <jakub@redhat.com>
532         PR libstdc++/104772
533         * include/std/limits: (numeric_limits<__float128>): Define
534         for __STRICT_ANSI__ as well.
535         * testsuite/18_support/numeric_limits/128bit.cc: Remove
536         check for __STRICT_ANSI__.
538 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
540         * configure.ac: Use AS_IF.
541         * configure: Regenerate.
543 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
545         PR libstdc++/109822
546         * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
547         to avoid casts to other vector types. Implement store as
548         succession of power-of-2 sized memcpy to avoid PR90424.
550 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
552         PR libstdc++/110054
553         * include/experimental/bits/simd_builtin.h (_S_masked_store):
554         Call into deduced ABI's SimdImpl after conversion.
555         * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
556         Don't use _mm_maskmoveu_si128. Use the generic fall-back
557         implementation. Also fix masked stores without SSE2, which
558         were not doing anything before.
560 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
562         * include/experimental/bits/simd.h (__bit_cast): Use
563         __gnu__::__vector_size__ instead of gnu::vector_size.
565 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
567         PR libstdc++/110139
568         * include/std/array (__array_traits<T, 0>::operator T*()): Make
569         conversion operator explicit.
570         (array::front): Use size_type as subscript operand.
571         (array::data): Use static_cast to make conversion explicit.
572         * testsuite/23_containers/array/element_access/110139.cc: New
573         test.
575 2023-06-06  Joseph Faulls  <Joseph.Faulls@imgtec.com>
577         * include/bits/locale_classes.tcc: Remove check for
578         codecvt<char8_t, char, mbstate_t> facet.
580 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
582         * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
583         close-on-exec flag on file descriptors.
585 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
587         PR libstdc++/108178
588         * src/filesystem/ops-common.h (do_copy_file): Check for empty
589         files by trying to read a character.
590         * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
591         New test.
593 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
595         * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
596         * config.h.in: Regenerate.
597         * configure: Regenerate.
598         * src/filesystem/ops-common.h (copy_file_copy_file_range):
599         Define new function.
600         (do_copy_file): Use it.
602 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
604         * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
605         * config.h.in: Regenerate.
606         * configure: Regenerate.
607         * src/filesystem/ops-common.h (copy_file_sendfile): Define new
608         function for sendfile logic. Loop to support large files. Skip
609         zero-length files.
610         (do_copy_file): Use it.
612 2023-06-04  Jason Merrill  <jason@redhat.com>
614         PR c++/97720
615         * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
616         * config/abi/pre/gnu.ver: Add it.
618 2023-06-02  François Dumont  <fdumont@gcc.gnu.org>
620         * include/parallel/algobase.h: Include <parallel/search.h>.
622 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
624         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
625         Add const to equality operator.
627 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
629         * include/std/expected (expected::and_then, expected::or_else)
630         (expected::transform_error): Use _M_val and _M_unex instead of
631         calling value() and error(), as per LWG 3938.
632         (expected::transform): Likewise. Remove incorrect std::move
633         calls from lvalue overloads.
634         (expected<void, E>::and_then, expected<void, E>::or_else)
635         (expected<void, E>::transform): Use _M_unex instead of calling
636         error().
637         * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
638         and transform, and for std::expected<void, E>.
639         * testsuite/20_util/expected/lwg3938.cc: New test.
641 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
643         PR libstdc++/110060
644         * include/bits/stl_vector.h (_Vector_base::_M_invariant):
645         Remove.
646         (vector::size, vector::capacity): Remove calls to _M_invariant.
647         * include/bits/vector.tcc (vector::_M_fill_assign): Add
648         optimization hint to reallocating path.
649         (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
650         Likewise.
651         * testsuite/23_containers/vector/capacity/invariant.cc: Moved
652         to...
653         * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
654         ...here. Check assign(FwdIter, FwdIter) too.
655         * testsuite/23_containers/vector/types/1.cc: Revert addition
656         of -Wno-stringop-overread option.
658 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
660         * doc/xml/manual/evolution.xml: Document removal of implicit
661         allocator rebinding extensions in strict mode and for C++20.
662         * doc/html/*: Regenerate.
664 2023-06-01  Jason Merrill  <jason@redhat.com>
666         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
667         handlers in the cleanup phase.
669 2023-06-01  Matthias Kretz  <m.kretz@gsi.de>
671         PR libstdc++/110050
672         * include/experimental/bits/simd.h (__vectorized_sizeof): With
673         __have_neon_a32 only single-precision float works (in addition
674         to integers).
676 2023-06-01  François Dumont  <fdumont@gcc.gnu.org>
678         * include/bits/stl_algo.h
679         (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
680         * include/bits/stl_algobase.h: ...here.
681         * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
682         * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
683         (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
684         Move...
685         * include/parallel/algobase.h: ...here.
686         * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
687         includes. Include <bits/stl_algobase.h>.
689 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
691         PR libstdc++/109818
692         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
693         float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
694         * config.h.in: Regenerate.
695         * configure: Regenerate.
696         * include/c_global/cmath (float_t, double_t): Guard using new
697         _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
699 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
701         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
702         functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
703         for C99 rounding functions to here.
704         (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
705         functions from here.
706         * config.h.in: Regenerate.
707         * configure: Regenerate.
708         * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
709         of _GLIBCXX_USE_C99_MATH_TR1.
710         * include/bits/random.tcc: Likewise.
711         * include/c_compatibility/math.h: Likewise.
712         * include/c_global/cmath: Likewise.
713         * include/ext/random: Likewise.
714         * include/ext/random.tcc: Likewise.
715         * include/std/complex: Likewise.
716         * testsuite/20_util/from_chars/4.cc: Likewise.
717         * testsuite/20_util/from_chars/8.cc: Likewise.
718         * testsuite/26_numerics/complex/proj.cc: Likewise.
719         * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
720         * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
721         Likewise.
722         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
723         Likewise.
724         * testsuite/util/testsuite_random.h: Likewise.
726 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
728         * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
729         function.
730         (vector::size(), vector::capacity()): Call _M_invariant().
731         * testsuite/23_containers/vector/capacity/invariant.cc: New test.
732         * testsuite/23_containers/vector/types/1.cc: Add suppression for
733         false positive warning (PR110060).
735 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
737         PR libstdc++/109921
738         * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
739         defined before trying to use _Float128.
741 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
743         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
744         to check __INT_PTR_WIDTH__ instead of sizeof(void*).
745         * configure: Regenerate.
747 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
749         * include/bits/unique_lock.h: Include <bits/error_constants.h>
750         here for std::errc constants.
751         * include/std/mutex: Do not include <bits/error_constants.h> and
752         <exception> here.
754 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
756         * configure.ac: Replace use of -o operator for test.
757         * configure: Regenerate.
759 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
761         * include/std/scoped_allocator (scoped_allocator_adaptor): Add
762         noexcept to all constructors except the default constructor.
763         (scoped_allocator_adaptor::inner_allocator): Add noexcept.
764         (scoped_allocator_adaptor::outer_allocator): Likewise.
765         * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
767 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
769         PR libstdc++/104772
770         * include/std/limits (numeric_limits<__float128>): Define.
771         * testsuite/18_support/numeric_limits/128bit.cc: New test.
773 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
775         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
776         msp430 to all 16-bit targets.
777         * configure: Regenerate.
779 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
781         PR libstdc++/109921
782         * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
783         Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
784         (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
785         binary64.
786         (from_chars(const char*, const char*, double&, chars_format)):
787         Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
788         (from_chars(const char*, const char*, _Float128&, chars_format))
789         Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
790         defined, otherwise parse a long double and convert to _Float128.
792 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
794         PR libstdc++/109922
795         * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
796         Add deprecated attribute to non-standard overload.
797         * doc/xml/manual/evolution.xml: Document deprecation.
798         * doc/html/*: Regenerate.
799         * testsuite/27_io/manipulators/standard/char/1.cc: Add
800         dg-warning for expected deprecated warning.
801         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
802         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
803         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
805 2023-05-30  Alexandre Oliva  <oliva@adacore.com>
807         * testsuite/20_util/from_chars/4.cc: Skip long double test06
808         on x86_64-vxworks.
809         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
810         x86_64-vxworks.
812 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
814         PR libstdc++/109822
815         * include/experimental/bits/simd.h (to_native): Use int NTTP
816         as specified in PTS2.
817         (to_compatible): Likewise. Add missing tag to call mask
818         generator ctor.
819         * testsuite/experimental/simd/pr109822_cast_functions.cc: New
820         test.
822 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
824         * testsuite/experimental/simd/tests/integer_operators.cc:
825         Compute expected value differently to avoid getting turned into
826         a vector shift.
828 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
830         * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
831         double <-> (u)long conversion tests conditional on sizeof(long
832         double) and sizeof(long).
834 2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
836         * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
837         Negative __y is UB, so prefer signed compare.
839 2023-05-25  Jonathan Wakely  <jwakely@redhat.com>
841         * testsuite/util/testsuite_allocator.h (PointerBase): Add
842         relational operators.
844 2023-05-25  Alexandre Oliva  <oliva@adacore.com>
846         * testsuite/20_util/to_chars/long_double.cc: Expect execution
847         fail on x86-vxworks.
849 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
851         PR libstdc++/109949
852         * include/experimental/bits/simd.h (__intrinsic_type): If
853         __ALTIVEC__ is defined, map gnu::vector_size types to their
854         corresponding __vector T types without losing unsignedness of
855         integer types. Also prefer long long over long.
856         * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
857         object to the expected unsigned vector type.
859 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
861         PR libstdc++/109261
862         * include/experimental/bits/simd.h (__intrinsic_type):
863         Specialize __intrinsic_type<double, 8> and
864         __intrinsic_type<double, 16> in any case, but provide the member
865         type only with __aarch64__.
867 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
869         PR libstdc++/109261
870         * include/experimental/bits/simd_neon.h (_S_reduce): Add
871         constexpr and make NEON implementation conditional on
872         not __builtin_is_constant_evaluated.
874 2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
876         PR libstdc++/109261
877         * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
878         Avoid vector builtin subscripting in constant expressions.
879         (resizing_simd_cast): Avoid memcpy if constant_evaluated.
880         (const_where_expression, where_expression, where)
881         (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
882         _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
883         internal APIs).
884         * include/experimental/bits/simd_builtin.h (__vector_permute)
885         (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
886         (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
887         (_MaskImplBuiltin::_S_store): Add constexpr.
888         (_CommonImplBuiltin::_S_store_bool_array)
889         (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
890         (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
891         constant_evaluated case.
892         * include/experimental/bits/simd_fixed_size.h
893         (_S_masked_load): Reword comment.
894         (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
895         (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
896         (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
897         (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
898         (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
899         constexpr.
900         (_SimdTuple::operator[], _M_set): Add constexpr and add
901         constant_evaluated case.
902         (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
903         * include/experimental/bits/simd_scalar.h: Add constexpr.
904         * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
905         constexpr and add constant_evaluated case.
906         (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
907         (_S_less_equal): Value-initialize to satisfy constexpr
908         evaluation.
909         (_MaskImplX86::_S_load): Add constant_evaluated case.
910         (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
911         case. Value-initialize local variables.
912         (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
913         (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
914         case.
915         * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
916         test.
918 2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
920         * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
921         __infn into #ifdef'ed block.
922         * testsuite/experimental/simd/tests/fpclassify.cc: Declare
923         constants only when used.
924         * testsuite/experimental/simd/tests/frexp.cc: Likewise.
925         * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
926         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
927         Likewise.
928         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
929         Move totest and expect1 into #ifdef'ed block.
931 2023-05-19  Gerald Pfeifer  <gerald@pfeifer.com>
933         * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
934         * doc/html/manual/strings.html: Regenerate.
936 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
938         PR libstdc++/109883
939         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
941 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
943         PR libstdc++/109883
944         * include/c_global/cmath (atan2, fmod, pow): Move
945         __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
946         __gnu_cxx::__bfloat16_t overloads.
947         (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
948         Likewise.
949         (fma): Move __gnu_cxx::__promote_3 using template after
950         _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
952 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
954         * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
955         checks for float_round_style and float_denorm_style.
957 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
959         * include/bits/c++config: Add system_header pragma.
961 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
963         * include/std/expected (expected::and_then, expected::or_else)
964         (expected::transform, expected::transform_error): Fix exception
965         specifications as per LWG 3877.
966         (expected<void, E>::and_then, expected<void, E>::transform):
967         Likewise.
968         * testsuite/20_util/expected/lwg3877.cc: New test.
970 2023-05-17  Ken Matsui  <kmatsui@cs.washington.edu>
972         * include/std/type_traits: Use __bool_constant instead of
973         integral_constant.
975 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
977         * configure: Regenerate.
979 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
981         PR libstdc++/109741
982         * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
983         * config.h.in: Regenerate.
984         * configure: Regenerate.
985         * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
986         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
987         align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
988         instead of hardcoded 64.
990 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
992         * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
993         mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
994         functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
995         * config.h.in: Regenerate.
996         * configure: Regenerate.
997         * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
998         instead of _GLIBCXX_USE_C99_FENV_TR1.
999         * include/c_global/cfenv: Likewise.
1000         * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
1001         of _GLIBCXX_USE_C99_CTYPE_TR1.
1003 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1005         * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
1006         C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
1007         <inttypes.h> features in C++11 mode and define
1008         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
1009         * config.h.in: Regenerate.
1010         * configure: Regenerate.
1011         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
1012         * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
1013         of _GLIBCXX_USE_C99_STDINT_TR1.
1014         * include/c_compatibility/inttypes.h: Check
1015         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
1016         instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
1017         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
1018         * include/c_compatibility/stdatomic.h: Check
1019         _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
1020         * include/c_compatibility/stdint.h: Likewise.
1021         * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
1022         and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
1023         _GLIBCXX_USE_C99_INTTYPES_TR1 and
1024         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
1025         * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
1026         instead of _GLIBCXX_USE_C99_STDINT_TR1.
1027         * include/std/atomic: Likewise.
1028         * src/c++11/cow-stdexcept.cc: Likewise.
1029         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1030         Likewise.
1031         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1032         Likewise.
1034 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1036         * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
1037         functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
1038         * config.h.in: Regenerate.
1039         * configure: Regenerate.
1040         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
1041         * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
1042         instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
1044 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1046         * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
1047         assertion to ensure expected exception is throw.
1049 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1051         * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
1052         printer for chrono::zoned_time for cx11 ABI and tzdb effective
1053         target.
1055 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1057         * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
1058         _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
1059         * configure: Regenerate.
1061 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1063         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
1064         to check for nan, nanf, and nanl.
1065         * configure: Regenerate.
1067 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1069         * include/bits/char_traits.h (char_traits<char16_t>): Do not
1070         depend on _GLIBCXX_USE_C99_STDINT_TR1.
1071         (char_traits<char32_t>): Likewise.
1072         * include/experimental/source_location: Likewise.
1074 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1076         * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
1077         (atomic_int_least16_t, atomic_uint_least16_t)
1078         (atomic_int_least32_t, atomic_uint_least32_t)
1079         (atomic_int_least64_t, atomic_uint_least64_t)
1080         (atomic_int_fast16_t, atomic_uint_fast16_t)
1081         (atomic_int_fast32_t, atomic_uint_fast32_t)
1082         (atomic_int_fast64_t, atomic_uint_fast64_t)
1083         (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
1084         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
1086 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1088         * include/bits/algorithmfwd.h (shuffle): Do not depend on
1089         _GLIBCXX_USE_C99_STDINT_TR1.
1090         * include/bits/ranges_algo.h (shuffle): Likewise.
1091         * include/bits/stl_algo.h (shuffle): Likewise.
1092         * include/ext/random: Likewise.
1093         * include/ext/throw_allocator.h (random_condition): Likewise.
1094         * include/std/random: Likewise.
1095         * src/c++11/cow-string-inst.cc: Likewise.
1096         * src/c++11/random.cc: Likewise.
1098 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1100         * testsuite/experimental/feat-cxx14.cc: Remove dependency on
1101         _GLIBCXX_USE_C99_STDINT_TR1.
1103 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1105         * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
1106         on _GLIBCXX_USE_C99_STDINT_TR1.
1108 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
1110         * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
1111         dependency on _GLIBCXX_USE_C99_STDINT_TR1.
1112         * testsuite/experimental/string_view/typedefs.cc: Likewise.
1114 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1116         * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
1117         (auto_locale, auto_ferounding): New class types.
1118         (from_chars_impl): Use auto_locale and auto_ferounding.
1120 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1122         PR libstdc++/109772
1123         * include/std/chrono (hh_mm_ss::__fits): Remove variable
1124         template.
1125         (hh_mm_ss::__subseconds): Remove __fits from constraints.
1126         * testsuite/std/time/hh_mm_ss/109772.cc: New test.
1127         * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
1128         hh_mm_ss<duration<int, std::pico>>.
1130 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1132         * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
1133         * include/bits/basic_ios.h: Add static assertion checking
1134         traits_type::value_type.
1135         * include/bits/basic_string.h: Likewise. Do not rebind
1136         allocator, and add static assertion checking its value_type.
1137         (basic_string::_Alloc_traits_impl): Remove class template.
1138         (basic_string::_S_allocate): New static member function.
1139         (basic_string::assign): Use _S_allocate.
1140         * include/bits/basic_string.tcc (basic_string::_M_create)
1141         (basic_string::reserve, basic_string::_M_replace): Likewise.
1142         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
1143         Disable for C++20 and later.
1144         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
1145         Likweise.
1147 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1149         PR libstdc++/109758
1150         * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
1151         and negative zero correctly.
1152         * testsuite/26_numerics/headers/cmath/109758.cc: New test.
1154 2023-05-10  François Dumont  <fdumont@gcc.gnu.org>
1156         * include/bits/hashtable_policy.h
1157         (_NodeBuilder<>::_S_build): Use __node_ptr.
1158         (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
1159         (_AllocNode<>): Likewise.
1160         (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
1161         to call std::is_permutation in the non-unique key implementation.
1162         * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
1163         _M_begin() once.
1164         (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
1165         (_Hashtable<>::_M_insert_bucket_begin): Likewise.
1166         (_Hashtable<>::_M_remove_bucket_begin): Likewise.
1167         (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
1168         const_iterator.
1169         (_Hashtable<>::find): Likewise.
1170         (_Hashtable<>::_M_emplace): Likewise.
1171         (_Hashtable<>::_M_insert_unique): Likewise.
1173 2023-05-09  Jonathan Wakely  <jwakely@redhat.com>
1175         * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
1176         Print floating-point durations correctly.
1177         (StdChronoTimePointPrinter): Support printing only the value,
1178         not the type name. Uncomment handling for known clocks.
1179         (StdChronoZonedTimePrinter): Remove type names from output.
1180         (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
1181         (StdChronoTimeZonePrinter): Add equals sign to output.
1182         * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
1184 2023-05-05  Alexandre Oliva  <oliva@adacore.com>
1186         * testsuite/20_util/from_chars/4.cc: Skip long double test06
1187         on aarch64-vxworks.
1188         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1189         aarch64-vxworks.
1191 2023-05-04  Jonathan Wakely  <jwakely@redhat.com>
1193         * doc/xml/manual/abi.xml (abi.versioning.history): Document
1194         libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
1195         * doc/html/manual/abi.html: Regenerate.
1197 2023-05-04  Florian Weimer  <fweimer@redhat.com>
1199         * doc/xml/manual/abi.xml (abi.versioning.history): Add
1200         GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
1201         libgcc_s.
1203 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
1205         * src/c++17/floating_from_chars.cc
1206         (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
1207         _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
1208         * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
1209         _ZSt8to_charsPcS_u9__ieee128.
1210         (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
1211         _ZSt8to_charsPcS_u9__ieee128St12chars_format.
1212         (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
1213         _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
1214         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
1216 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
1218         * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
1219         rather than powerpc64-linux-gnu for powerpc64le*-linux*.
1220         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
1221         _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
1222         GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
1223         versions.
1224         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
1225         file.
1227 2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
1228             Jonathan Wakely  <jwakely@redhat.com>
1230         PR libstdc++/109703
1231         * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
1232         Initialize _M_string_length.
1234 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
1236         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1237         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1238         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1239         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1240         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1241         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1242         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1243         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1245 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
1247         PR libstdc++/109694
1248         * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
1249         -Wattribute-alias.
1251 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1253         * include/bits/random.h (gamma_distribution): Add to the right
1254         doxygen group.
1255         (discrete_distribution, piecewise_constant_distribution)
1256         (piecewise_linear_distribution): Create a new doxygen group and
1257         fix the incomplete doxygen comments.
1258         * include/bits/uniform_int_dist.h (uniform_int_distribution):
1259         Add to doxygen group.
1261 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1263         * include/bits/uses_allocator.h: Add missing @file comment.
1264         * include/bits/regex.tcc: Remove stray doxygen comments.
1265         * include/experimental/memory_resource: Likewise.
1266         * include/std/bit: Tweak doxygen @cond comments.
1267         * include/std/expected: Likewise.
1268         * include/std/numbers: Likewise.
1270 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1272         * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
1273         from header paths.
1275 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1277         * include/bits/move.h: Simplify opening/closing namespace std.
1279 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
1281         PR libstdc++/108969
1282         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
1283         _ZSt21ios_base_library_initv.
1284         * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
1285         symver and make it the latestp.
1286         * src/c++98/ios_init.cc (ios_base_library_init): New alias.
1287         * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
1288         * include/std/iostream: If init_priority attribute is supported
1289         and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
1290         symbol into the object.
1291         * configure: Regenerated.
1293 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1295         * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
1296         * include/std/format: Likewise.
1298 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1300         * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
1301         (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
1303 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1305         * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
1306         HTML docs.
1307         * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
1308         from doxygen docs.
1309         * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
1310         Likewise.
1311         * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
1312         Likewise.
1313         * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
1314         Likewise.
1315         * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
1316         (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
1317         (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
1318         (_DEFINE_BINARY_OPERATOR): Likewise.
1320 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1322         * include/bits/memory_resource.h: Improve doxygen comments.
1323         * include/std/memory_resource: Likewise.
1325 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1327         PR libstdc++/40380
1328         * include/bits/basic_string.h: Improve doxygen comments.
1329         * include/bits/cow_string.h: Likewise.
1330         * include/bits/forward_list.h: Likewise.
1331         * include/bits/fs_dir.h: Likewise.
1332         * include/bits/fs_path.h: Likewise.
1333         * include/bits/quoted_string.h: Likewise.
1334         * include/bits/stl_bvector.h: Likewise.
1335         * include/bits/stl_map.h: Likewise.
1336         * include/bits/stl_multimap.h: Likewise.
1337         * include/bits/stl_multiset.h: Likewise.
1338         * include/bits/stl_set.h: Likewise.
1339         * include/bits/stl_vector.h: Likewise.
1340         * include/bits/unordered_map.h: Likewise.
1341         * include/bits/unordered_set.h: Likewise.
1342         * include/std/filesystem: Likewise.
1343         * include/std/iomanip: Likewise.
1345 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1347         PR libstdc++/105081
1348         * src/c++11/random.cc (__throw_syserr): New function.
1349         (random_device::_M_init, random_device::_M_init_pretr1): Use new
1350         function for bad tokens.
1351         (random_device::_M_getval): Use new function for read errors.
1352         * testsuite/util/testsuite_random.h (random_device_available):
1353         Change catch handler to use std::system_error.
1355 2023-04-24  Patrick Palka  <ppalka@redhat.com>
1357         * include/bits/max_size_type.h (__max_diff_type::operator>>=):
1358         Fix propagation of sign bit.
1359         * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
1360         non-standard 'signed typedef-name'.  Add some compile-time tests
1361         for right-shifting a negative __max_diff_type value by more than
1362         one.
1364 2023-04-19  Patrick Palka  <ppalka@redhat.com>
1365             Jonathan Wakely  <jwakely@redhat.com>
1367         PR c++/100157
1368         * include/bits/utility.h (_Nth_type): Conditionally define in
1369         terms of __type_pack_element if available.
1370         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
1371         additional errors from the new built-in.
1373 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
1375         Revert:
1376         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
1378         PR libstdc++/108969
1379         * src/Makefile.am: Move globals_io.cc to here.
1380         * src/Makefile.in: Regenerate.
1381         * src/c++98/Makefile.am: Remove globals_io.cc from here.
1382         * src/c++98/Makefile.in: Regenerate.
1383         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
1384         symbol name and then export with GLIBCXX_3.4.31 symver.
1385         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
1386         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
1387         Regenerate.
1388         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
1389         Regenerate.
1390         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
1391         Regenerate.
1392         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1393         Regenerate.
1394         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1395         Regenerate.
1396         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
1397         Regenerate.
1398         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
1399         Regenerate.
1400         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
1401         Regenerate.
1402         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
1404 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
1406         Revert:
1407         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
1409         PR libstdc++/108969
1410         * config/abi/pre/gnu.ver: Fix preprocessor condition.
1412 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
1414         * doc/xml/manual/extensions.xml: Fix example to declare and
1415         qualify std::free, and use NULL instead of 0.
1416         * doc/html/manual/ext_demangling.html: Regenerate.
1417         * libsupc++/cxxabi.h: Adjust doxygen comments.
1419 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
1421         PR libstdc++/108969
1422         * config/abi/pre/gnu.ver: Fix preprocessor condition.
1424 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
1426         PR libstdc++/108969
1427         * src/Makefile.am: Move globals_io.cc to here.
1428         * src/Makefile.in: Regenerate.
1429         * src/c++98/Makefile.am: Remove globals_io.cc from here.
1430         * src/c++98/Makefile.in: Regenerate.
1431         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
1432         symbol name and then export with GLIBCXX_3.4.31 symver.
1433         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
1434         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
1435         Regenerate.
1436         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
1437         Regenerate.
1438         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
1439         Regenerate.
1440         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1441         Regenerate.
1442         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1443         Regenerate.
1444         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
1445         Regenerate.
1446         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
1447         Regenerate.
1448         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
1449         Regenerate.
1450         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
1452 2023-04-18  Patrick Palka  <ppalka@redhat.com>
1454         PR libstdc++/108827
1455         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
1456         for C++23.
1457         * include/std/ranges (range_adaptor_closure): Define for C++23.
1458         * include/std/version (__cpp_lib_ranges): Bump value for
1459         C++23.
1460         * testsuite/std/ranges/version_c++23.cc: Bump expected value
1461         of __cpp_lib_ranges.
1462         * testsuite/std/ranges/range_adaptor_closure.cc: New test.
1464 2023-04-18  Patrick Palka  <ppalka@redhat.com>
1466         * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
1467         Define for C++23.
1468         (__cpp_lib_ranges_iota): Likewise.
1469         (__cpp_lib_ranges_find_last): Likewise.
1470         (__cpp_lib_fold): Rename to ...
1471         (__cpp_lib_ranges_fold): ... this.
1472         * include/std/version: As above.
1473         * testsuite/25_algorithms/fold_left/1.cc: Adjust after
1474         renaming __cpp_lib_fold.
1475         * testsuite/std/ranges/version_c++23.cc: Verify values
1476         of the above feature-test macros.
1478 2023-04-18  Patrick Palka  <ppalka@redhat.com>
1480         PR libstdc++/109525
1481         * include/std/ranges (views::_AsConst::operator()): Add
1482         missing const to constant_range test.
1483         * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
1484         Improve formatting.  Adjust expected type of v2.
1485         (test03): New test.
1487 2023-04-14  Patrick Palka  <ppalka@redhat.com>
1489         * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
1490         (const_sentinel_t): Likewise.
1491         (range_const_reference_t): Likewise.
1492         (constant_range): Likewise.
1493         (__cust_access::__possibly_const_range): Likewise, replacing ...
1494         (__cust_access::__as_const): ... this.
1495         (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
1496         (__cust_access::_CEnd::operator()): Likewise.
1497         (__cust_access::_CRBegin::operator()): Likewise.
1498         (__cust_access::_CREnd::operator()): Likewise.
1499         (__cust_access::_CData::operator()): Likewise.
1500         * include/bits/ranges_util.h (ranges::__detail::__different_from):
1501         Make it an alias of std::__detail::__different_from.
1502         (view_interface::cbegin): Define for C++23.
1503         (view_interface::cend): Likewise.
1504         * include/bits/stl_iterator.h (__detail::__different_from): Define.
1505         (iter_const_reference_t): Define for C++23.
1506         (__detail::__constant_iterator): Likewise.
1507         (__detail::__is_const_iterator): Likewise.
1508         (__detail::__not_a_const_iterator): Likewise.
1509         (__detail::__iter_const_rvalue_reference_t): Likewise.
1510         (__detail::__basic_const_iter_cat):: Likewise.
1511         (const_iterator): Likewise.
1512         (__detail::__const_sentinel): Likewise.
1513         (const_sentinel): Likewise.
1514         (basic_const_iterator): Likewise.
1515         (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
1516         (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
1517         (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
1518         Likewise.
1519         (make_const_iterator): Define for C++23.
1520         (make_const_sentinel): Likewise.
1521         * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
1522         (as_const_view): Likewise.
1523         (enable_borrowed_range<as_const_view>): Likewise.
1524         (views::__detail::__is_ref_view): Likewise.
1525         (views::__detail::__can_is_const_view): Likewise.
1526         (views::_AsConst, views::as_const): Likewise.
1527         * include/std/span (span::const_iterator): Likewise.
1528         (span::const_reverse_iterator): Likewise.
1529         (span::cbegin): Likewise.
1530         (span::cend): Likewise.
1531         (span::crbegin): Likewise.
1532         (span::crend): Likewise.
1533         * include/std/version (__cpp_lib_ranges_as_const): Likewise.
1534         * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
1535         behave independently of C++20 vs C++23.
1536         * testsuite/std/ranges/version_c++23.cc: Verify value of
1537         __cpp_lib_ranges_as_const macro.
1538         * testsuite/24_iterators/const_iterator/1.cc: New test.
1539         * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
1541 2023-04-14  Patrick Palka  <ppalka@redhat.com>
1543         * include/bits/ranges_base.h (__cust_access::__as_const)
1544         (__cust_access::_CBegin, __cust::cbegin)
1545         (__cust_access::_CEnd, __cust::cend)
1546         (__cust_access::_CRBegin, __cust::crbegin)
1547         (__cust_access::_CREnd, __cust::crend)
1548         (__cust_access::_CData, __cust::cdata): Move down definitions to
1549         shortly after the definition of input_range.
1551 2023-04-14  Patrick Palka  <ppalka@redhat.com>
1553         * include/bits/ranges_algo.h: Include <optional> for C++23.
1554         (__cpp_lib_fold): Define for C++23.
1555         (in_value_result): Likewise.
1556         (__detail::__flipped): Likewise.
1557         (__detail::__indirectly_binary_left_foldable_impl): Likewise.
1558         (__detail::__indirectly_binary_left_foldable): Likewise.
1559         (___detail:__indirectly_binary_right_foldable): Likewise.
1560         (fold_left_with_iter_result): Likewise.
1561         (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
1562         (__fold_left_fn, fold_left): Likewise.
1563         (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
1564         Likewise.
1565         (__fold_left_first_fn, fold_left_first): Likewise.
1566         (__fold_right_fn, fold_right): Likewise.
1567         (__fold_right_last_fn, fold_right_last): Likewise.
1568         * include/std/version (__cpp_lib_fold): Likewise.
1569         * testsuite/25_algorithms/fold_left/1.cc: New test.
1570         * testsuite/25_algorithms/fold_right/1.cc: New test.
1572 2023-04-14  Jonathan Wakely  <jwakely@redhat.com>
1574         * include/std/format (formatter): Add comment to deleted default
1575         constructor of primary template.
1576         (_Checking_scanner): Add static_assert.
1578 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
1580         * doc/xml/manual/using.xml: Document libstdc++exp.a library.
1581         * doc/html/*: Regenerate.
1583 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
1585         * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
1586         * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
1587         namespace to avoid clashing with libc struct.
1588         * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1589         Likewise.
1590         * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
1591         * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
1592         * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
1593         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1594         * testsuite/experimental/synchronized_value.cc: Require gthreads
1595         and add missing option for pthreads targets.
1597 2023-04-12  Patrick Palka  <ppalka@redhat.com>
1599         * include/std/ranges (__cpp_lib_ranges_enumerate): Define
1600         for C++23.
1601         (__detail::__range_with_movable_reference): Likewise.
1602         (enumerate_view): Likewise.
1603         (enumerate_view::_Iterator): Likewise.
1604         (enumerate_view::_Sentinel): Likewise.
1605         (views::__detail::__can_enumerate_view): Likewise.
1606         (views::_Enumerate, views::enumerate): Likewise.
1607         * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
1608         * testsuite/std/ranges/version_c++23.cc: Verify value of
1609         __cpp_lib_ranges_enumerate.
1610         * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
1612 2023-04-12  Patrick Palka  <ppalka@redhat.com>
1614         * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
1615         Propagate _M_trailing_empty in the const-converting constructor
1616         as per LWG 3904.
1617         * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
1618         assertion.
1619         * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
1621 2023-04-12  Patrick Palka  <ppalka@redhat.com>
1623         * src/c++17/floating_from_chars.cc: Include <algorithm>,
1624         <iterator>, <limits> and <cstdint>.
1626 2023-04-12  Patrick Palka  <ppalka@redhat.com>
1628         PR libstdc++/108291
1629         * include/std/ranges (chunk_by_view::_M_find_next): Generalize
1630         parameter types of the lambda wrapper passed to adjacent_find.
1631         (chunk_by_view::_M_find_prev): Likewise.
1632         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
1633         New tests.
1635 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
1637         PR libstdc++/109482
1638         * include/experimental/internet (basic_endpoint::basic_endpoint()):
1639         Ensure that the required union members are active. Only define
1640         as constexpr for C++20 and later.
1641         (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
1642         Likewise.
1643         * testsuite/experimental/net/internet/endpoint/cons.cc: Only
1644         check constexpr default constructor for C++20 and later.
1645         * testsuite/experimental/net/internet/endpoint/extensible.cc:
1646         Likewise.
1648 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
1650         * src/c++20/tzdata.zi: Import new file from 2023c release.
1652 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
1654         * include/precompiled/stdc++.h (C++17): Don't double-include
1655         <charconv>, once with wrong conditions.
1656         * testsuite/18_support/96817.cc: Require hosted.
1657         * testsuite/18_support/bad_exception/59392.cc: Ditto.
1658         * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
1659         * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
1660         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1661         Ditto.
1663 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
1665         * include/bits/c++config: When __STDC_HOSTED__ is zero,
1666         disable _GLIBCXX_DEBUG and, if it was set, enable
1667         _GLIBCXX_ASSERTIONS.
1668         * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
1669         Include <bits/c++config.h> when determining whether debug is
1670         set, in order to inherit the logic from above
1672 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
1674         * testsuite/17_intro/versionconflict.cc: New test.
1675         * include/std/version: Allow disabling the system_header pragma
1676         via _GLIBCXX_TESTING_SYSHDR.
1678 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
1680         * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1681         Synchronize the definition block with...
1682         * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
1683         ... this one here.  Also define the 202202L value, rather than
1684         leaving it up to purely unique_ptr.h, so that the value is
1685         synchronized across all headers.
1686         (__gnu_debug::_Safe_iterator_base): Move into new conditional
1687         block.
1688         * include/std/memory (__cpp_lib_atomic_value_initialization):
1689         Define on freestanding under the same conditions as in
1690         atomic_base.h.
1691         * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
1692         Also define on freestanding.
1693         (__cpp_lib_to_chars): Ditto.
1694         (__cpp_lib_gcd): Ditto.
1695         (__cpp_lib_gcd_lcm): Ditto.
1696         (__cpp_lib_raw_memory_algorithms): Ditto.
1697         (__cpp_lib_array_constexpr): Ditto.
1698         (__cpp_lib_nonmember_container_access): Ditto.
1699         (__cpp_lib_clamp): Ditto.
1700         (__cpp_lib_constexpr_char_traits): Ditto.
1701         (__cpp_lib_constexpr_string): Ditto.
1702         (__cpp_lib_sample): Ditto.
1703         (__cpp_lib_lcm): Ditto.
1704         (__cpp_lib_constexpr_iterator): Ditto.
1705         (__cpp_lib_constexpr_char_traits): Ditto.
1706         (__cpp_lib_interpolate): Ditto.
1707         (__cpp_lib_constexpr_utility): Ditto.
1708         (__cpp_lib_shift): Ditto.
1709         (__cpp_lib_ranges): Ditto.
1710         (__cpp_lib_move_iterator_concept): Ditto.
1711         (__cpp_lib_constexpr_numeric): Ditto.
1712         (__cpp_lib_constexpr_functional): Ditto.
1713         (__cpp_lib_constexpr_algorithms): Ditto.
1714         (__cpp_lib_constexpr_tuple): Ditto.
1715         (__cpp_lib_constexpr_memory): Ditto.
1717 2023-04-05  John David Anglin  <danglin@gcc.gnu.org>
1719         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
1720         timeout factor on hppa*-*-*.
1722 2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
1724         * include/bits/regex.h (sub_match::swap): New function.
1725         * testsuite/28_regex/sub_match/lwg3204.cc: New test.
1727 2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
1729         * doc/xml/manual/extensions.xml: Remove std::bad_exception from
1730         example program.
1731         * doc/html/manual/ext_demangling.html: Regenerate.
1733 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
1735         PR tree-optimization/107087
1736         * include/bits/cow_string.h (basic_string::size()): Add
1737         optimizer hint that _S_empty_rep()._M_length is always zero.
1738         (basic_string::length()): Call size().
1740 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
1742         PR libstdc++/109339
1743         * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
1744         Add attribute access with access-mode 'none'.
1745         * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
1747 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
1749         * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
1750         Revert change from member function to data member. Fix for
1751         constant evaluation by detecting which union member is active.
1752         (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
1753         flag.
1755 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
1757         PR libstdc++/109242
1758         * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
1759         * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
1761 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
1763         * include/experimental/internet (ip::make_address): Implement
1764         missing overload.
1765         (ip::address_v4::broadcast()): Avoid undefined shift.
1766         (ip::basic_endpoint): Fix member functions for constexpr.
1767         (ip::basic_endpoint::_M_is_v6): Replace member function with
1768         data member, adjust member functions using it.
1769         (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
1770         content.
1771         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
1772         constexpr checks to work in C++14.
1773         * testsuite/experimental/net/internet/address/v4/creation.cc:
1774         Likewise.
1775         * testsuite/experimental/net/internet/endpoint/cons.cc:
1776         Likewise.
1777         * testsuite/experimental/net/internet/network/v4/cons.cc:
1778         Likewise.
1779         * testsuite/experimental/net/internet/network/v4/members.cc:
1780         Likewise.
1781         * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
1783 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
1785         * include/std/expected (expected::value() &): Use const lvalue
1786         for unex member passed to bad_expected_access constructor, as
1787         per LWG 3843.
1789 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
1791         PR libstdc++/109340
1792         * include/std/expected (expected::transform): Use
1793         std::remove_cv_t instead of std::remove_cvref_t.
1794         (expected::transform_error): Likewise.
1795         (expected<cv void, E>::transform): Likewise.
1796         (expected<cv void, E>::transform_error): Likewise.
1797         * include/std/optional (transform): Use std::remove_cv_t.
1798         * testsuite/20_util/optional/monadic/pr109340.cc: New test.
1800 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
1802         * include/std/optional (optional): Adjust static assertion to
1803         reject arrays and functions as well as references.
1804         * testsuite/20_util/optional/requirements_neg.cc: New test.
1806 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
1808         PR libstdc++/103387
1809         * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
1810         std::use_facet instead of cached _M_num_get facet.
1811         (istream::operator>>(short&)): Likewise.
1812         (istream::operator>>(int&)): Likewise.
1813         * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
1814         std::use_facet instead of cached _M_num_put facet.
1816 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
1818         * include/bits/char_traits.h (char_traits::copy): Return without
1819         using memcpy if n==0.
1820         (char_traits::assign): Likewise for memset.
1822 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
1824         PR libstdc++/109299
1825         * include/bits/basic_string.h (basic_string::_M_is_local()): Add
1826         hint for compiler that local strings fit in the local buffer.
1828 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
1830         PR libstdc++/109288
1831         * include/std/chrono (__detail::__get_leap_second_info): Update
1832         expiry date of hardcoded leapseconds list.
1833         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
1834         Likewise.
1835         * src/c++20/tzdata.zi: Import new file from 2023a release.
1836         * testsuite/std/time/time_zone/get_info_local.cc: Only check
1837         transitions for Egypt up to 2014.
1839 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1841         * include/experimental/bits/simd.h (is_simd_flag_type): New.
1842         (_IsSimdFlagType): New.
1843         (copy_from, copy_to, load ctors): Constrain _Flags using
1844         _IsSimdFlagType.
1846 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1848         * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
1849         _Base::_S_divides if the optimized _S_divides function is hidden
1850         via the preprocessor.
1852 2023-03-27  Jakub Jelinek  <jakub@redhat.com>
1854         * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
1855         warning if size_t is not unsigned long.
1857 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1859         * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
1860         Add overload, as per LWG 3893.
1861         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1862         Check assignment from nullptr.
1864 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1866         * include/std/format (formatter<const charT[N], charT>): Do not
1867         define partial speclialization, as per LWG 3833.
1868         * testsuite/std/format/formatter/requirements.cc: Check it.
1870 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1872         * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
1873         as per LWG 3792.
1874         * testsuite/20_util/exchange/constexpr.cc: Check for it.
1876 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1878         * include/std/version (__cpp_lib_format): Define.
1879         * testsuite/std/format/functions/format.cc: Check it.
1881 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1883         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
1884         Pass rvalues to the callback, as now allowed by LWG 3645.
1885         Enforce preconditions on the return value.
1886         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
1887         Adjust.
1889 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1891         * include/std/format: Add a comment noting that the resolution
1892         of LWG 3720 has been applied..
1894 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1896         * include/bits/regex.h (match_results): Add allocator-extended
1897         copy and move constructors, as per LWG 2195.
1898         * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
1900 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
1902         * include/bits/stream_iterator.h (istream_iterator): Add
1903         constexpr to copy constructor, as per LWG 3600.
1904         * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
1905         Check copy construction.
1907 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1909         * include/experimental/bits/simd_x86.h
1910         (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
1911         with __RECIPROCAL_MATH__.
1913 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1915         * include/experimental/bits/simd_detail.h: Don't define
1916         _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
1917         * include/experimental/bits/simd_x86.h (_S_divides): Remove
1918         check for __clang__.
1920 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1922         * include/experimental/bits/simd_detail.h: Don't declare the
1923         simd API as constexpr with Clang.
1924         * include/experimental/bits/simd_x86.h (__movm): New.
1925         (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
1926         and ?:.
1927         (_SimdImplX86::_S_masked_unary): Clang does not implement the
1928         same builtins. Implement the function using __movm, ?:, and -
1929         operators on vector_size types instead.
1931 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1933         * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
1934         define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
1936 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
1938         * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1939         formatting.
1941 2023-03-20  Marek Polacek  <polacek@redhat.com>
1943         PR c++/109159
1944         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
1945         * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
1946         * testsuite/23_containers/span/explicit.cc: Likewise.
1948 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
1950         PR libstdc++/109182
1951         * include/std/expected (expected<void>::expected(in_place_t)):
1952         Remove template-head.
1954 2023-03-18  Jonathan Wakely  <jwakely@redhat.com>
1956         PR libstdc++/109165
1957         * testsuite/18_support/coroutines/hash.cc: Use const object
1958         in second call.
1960 2023-03-17  Jonathan Wakely  <jwakely@redhat.com>
1962         PR libstdc++/109165
1963         * include/std/coroutine (hash<>::operator()): Add const.
1964         * testsuite/18_support/coroutines/hash.cc: New test.
1966 2023-03-14  Patrick Palka  <ppalka@redhat.com>
1968         PR libstdc++/109111
1969         * include/std/ranges (repeat_view): Remove redundant parentheses
1970         in requires-clause.
1971         (repeat_view::_Iterator): Correct the requires-clause.
1973 2023-03-14  Patrick Palka  <ppalka@redhat.com>
1975         * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
1976         Define.
1977         (__cpp_lib_move_iterator_concept): Define for C++20.
1978         (move_iterator::iterator_concept): Strengthen as per P2520R0.
1979         * include/std/version (__cpp_lib_move_iterator_concept): Define
1980         for C++20.
1981         * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
1983 2023-03-14  Patrick Palka  <ppalka@redhat.com>
1985         * include/bits/ranges_util.h (view_interface::empty): Add
1986         preferred overloads that use ranges::size when the range is
1987         sized as per LWG 3715.
1988         * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
1990 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
1992         * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
1993         Only define for C++17 and later.
1995 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
1997         * src/Makefile.am: Add comment about linker script fragments.
1998         * src/Makefile.in: Regenerate.
2000 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
2002         PR libstdc++/62196
2003         * include/bits/mask_array.h (mask_array): Add assertions to
2004         assignment operators.
2005         * include/std/valarray (valarray::operator[](valarray<bool>)):
2006         Add assertions.
2007         * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
2008         * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
2009         * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
2010         * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
2011         * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
2012         * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
2013         * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
2014         * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
2015         * testsuite/26_numerics/valarray/mask.cc: New test.
2017 2023-03-13  Jakub Jelinek  <jakub@redhat.com>
2019         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2020         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2022 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
2024         * doc/Makefile.am: Add comment referring to documentation.
2025         * doc/Makefile.in: Regenerate.
2027 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
2029         * doc/html/*: Regenerate.
2031 2023-03-13  Jonny Grant  <jg@jguk.org>
2033         * doc/xml/faq.xml: Update copyright year.
2035 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
2037         * include/bits/allocator.h: Fix typo in comment.
2039 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
2041         * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
2042         if it isn't mangled as DF16b but u6__bf16.
2044 2023-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
2046         * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
2047         to https.
2048         * doc/html/manual/documentation_hacking.html: Regenerate.
2050 2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
2052         PR libstdc++/109064
2053         * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
2054         Remove self-recursion in __init__. Add missing _supports.
2055         * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
2056         and unique().
2058 2023-03-09  Patrick Palka  <ppalka@redhat.com>
2060         * include/std/ranges
2061         (cartesian_product_view::_Iterator::_Iterator): Remove
2062         constraint on default constructor as per LWG 3849.
2063         (cartesian_product_view::_Iterator::_M_prev): Adjust position
2064         of _Nm > 0 test as per LWG 3820.
2065         (cartesian_product_view::_Iterator::_M_advance): Perform bounds
2066         checking only on sized cartesian products.
2067         * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
2069 2023-03-09  Patrick Palka  <ppalka@redhat.com>
2071         PR libstdc++/109024
2072         * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
2073         LWG 3796.
2074         (repeat_view::_M_pred): Likewise.
2075         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
2076         * testsuite/std/ranges/repeat/1.cc (test05): New test.
2078 2023-03-09  Patrick Palka  <ppalka@redhat.com>
2080         PR libstdc++/108362
2081         * include/std/ranges (__detail::__can_single_view): New concept.
2082         (_Single::operator()): Constrain it.  Move [[nodiscard]] to the
2083         end of the function declarator.
2084         (__detail::__can_iota_view): New concept.
2085         (_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
2086         end of the function declarator.
2087         (__detail::__can_istream_view): New concept.
2088         (_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
2089         end of the function declarator.
2090         * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
2091         * testsuite/std/ranges/istream_view.cc (test08): New test.
2092         * testsuite/std/ranges/single_view.cc (test07): New test.
2094 2023-03-09  Patrick Palka  <ppalka@redhat.com>
2096         PR libstdc++/107572
2097         * include/std/ranges (cartesian_product_view::end): When
2098         building the tuple of iterators, avoid calling ranges::begin on
2099         the first range if __empty_tail is false.
2100         * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
2102 2023-03-09  Jonathan Wakely  <jwakely@redhat.com>
2104         PR libstdc++/108882
2105         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
2106         patterns.
2108 2023-03-07  Jakub Jelinek  <jakub@redhat.com>
2110         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2111         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2112         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2113         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2114         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2116 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
2118         PR libstdc++/108882
2119         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
2120         not match symbols in namespace std::__gnu_cxx11_ieee128.
2121         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
2122         std::__gnu_cxx11_ieee128::money_{get,put}.
2124 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
2126         * libsupc++/eh_personality.cc: Fix spelling in comment.
2128 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
2130         * testsuite/30_threads/async/async.cc (test04): Initialize
2131         steady_start, renamed from steady_begin, next to slow_start.
2132         Increase tolerance for final wait.
2134 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
2136         * testsuite/libstdc++-prettyprinters/80276.cc: Add
2137         std::string to debug info.
2138         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2140 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
2142         PR libstdc++/104852
2143         PR libstdc++/95989
2144         PR libstdc++/52590
2145         * include/bits/std_thread.h (thread::_M_thread_deps): New
2146         static implicitly-inline member function.
2147         (std::thread template ctor): Pass it to _M_start_thread.
2148         * src/c++11/thread.cc (thread::_M_start_thread): Name depend
2149         parameter, force it live on entry.
2151 2023-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2153         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
2154         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
2155         Likewise.
2156         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
2157         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
2158         Likewise.
2160 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
2162         * include/bits/cow_string.h: Fix typo in comment.
2164 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
2166         * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
2167         current time zone cannot be determined.
2168         * testsuite/std/time/tzdb/1.cc: Remove conditions based on
2169         HAVE_TZDB macro and test all members unconditionally.
2171 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
2173         PR libstdc++/108952
2174         * include/bits/uses_allocator_args.h
2175         (uses_allocator_construction_args): Implement LWG 3527.
2176         * testsuite/20_util/pair/astuple/get-2.cc: New test.
2177         * testsuite/20_util/scoped_allocator/108952.cc: New test.
2178         * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
2180 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
2182         PR libstdc++/108846
2183         * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
2184         Add __assign_one static member function.
2185         (__copy_move<true, false, RA>): Likewise.
2186         (__copy_move<IsMove, true, RA>): Do not use memmove for a single
2187         value.
2188         (__copy_move_backward<IsMove, true, RA>): Likewise.
2189         * testsuite/25_algorithms/copy/108846.cc: New test.
2190         * testsuite/25_algorithms/copy_backward/108846.cc: New test.
2191         * testsuite/25_algorithms/copy_n/108846.cc: New test.
2192         * testsuite/25_algorithms/move/108846.cc: New test.
2193         * testsuite/25_algorithms/move_backward/108846.cc: New test.
2195 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
2197         * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
2198         attributes.
2200 2023-02-27  Jonathan Wakely  <jwakely@redhat.com>
2202         * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
2203         caveat to comment.
2204         * include/bits/basic_string.h (resize_and_overwrite): Add
2205         doxygen comment.
2207 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
2209         * include/experimental/bits/simd.h: Line breaks and indenting
2210         fixed to follow the libstdc++ standard.
2211         * include/experimental/bits/simd_builtin.h: Likewise.
2212         * include/experimental/bits/simd_fixed_size.h: Likewise.
2213         * include/experimental/bits/simd_neon.h: Likewise.
2214         * include/experimental/bits/simd_ppc.h: Likewise.
2215         * include/experimental/bits/simd_scalar.h: Likewise.
2216         * include/experimental/bits/simd_x86.h: Likewise.
2218 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
2220         PR libstdc++/108030
2221         * include/experimental/bits/simd_fixed_size.h
2222         (_SimdImplFixedSize::_S_broadcast): Replace inline with
2223         _GLIBCXX_SIMD_INTRINSIC.
2224         (_SimdImplFixedSize::_S_generate): Likewise.
2225         (_SimdImplFixedSize::_S_load): Likewise.
2226         (_SimdImplFixedSize::_S_masked_load): Likewise.
2227         (_SimdImplFixedSize::_S_store): Likewise.
2228         (_SimdImplFixedSize::_S_masked_store): Likewise.
2229         (_SimdImplFixedSize::_S_min): Likewise.
2230         (_SimdImplFixedSize::_S_max): Likewise.
2231         (_SimdImplFixedSize::_S_complement): Likewise.
2232         (_SimdImplFixedSize::_S_unary_minus): Likewise.
2233         (_SimdImplFixedSize::_S_plus): Likewise.
2234         (_SimdImplFixedSize::_S_minus): Likewise.
2235         (_SimdImplFixedSize::_S_multiplies): Likewise.
2236         (_SimdImplFixedSize::_S_divides): Likewise.
2237         (_SimdImplFixedSize::_S_modulus): Likewise.
2238         (_SimdImplFixedSize::_S_bit_and): Likewise.
2239         (_SimdImplFixedSize::_S_bit_or): Likewise.
2240         (_SimdImplFixedSize::_S_bit_xor): Likewise.
2241         (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
2242         (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
2243         (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
2244         explicit about not always-inline, yet).
2245         (_SimdImplFixedSize::_S_isinf): Likewise.
2246         (_SimdImplFixedSize::_S_isfinite): Likewise.
2247         (_SimdImplFixedSize::_S_isnan): Likewise.
2248         (_SimdImplFixedSize::_S_isnormal): Likewise.
2249         (_SimdImplFixedSize::_S_signbit): Likewise.
2251 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
2253         PR libstdc++/108856
2254         * include/experimental/bits/simd_builtin.h
2255         (_SimdImplBuiltin::_S_masked_unary): More efficient
2256         implementation of masked inc-/decrement for integers and floats
2257         without AVX2.
2258         * include/experimental/bits/simd_x86.h
2259         (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
2260         builtins for masked inc-/decrement.
2262 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2264         * include/experimental/executor (executor): Constrain template
2265         constructors.
2267 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2269         * include/experimental/internet (basic_endpoint): Add missing
2270         constexpr to comparison operators.
2271         * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
2273 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2275         * include/experimental/internet (network_v4::netmask()): Avoid
2276         undefined shift.
2277         (network_v4::broadcast()): Optimize and fix for targets with
2278         uint_least32_t wider than 32 bits.
2279         (network_v4::to_string(const Allocator&)): Fix for custom
2280         allocators and optimize using to_chars.
2281         (operator==(const network_v4&, const network_v4&)): Add missing
2282         constexpr.
2283         (operator==(const network_v6&, const network_v6&)): Likewise.
2284         * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
2285         * testsuite/experimental/net/internet/network/v4/members.cc: New test.
2287 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2289         * include/experimental/internet (address_4(const bytes_type&)):
2290         Use __builtin_bit_cast if available, otherwise convert to
2291         network byte order.
2292         (address_v4::to_bytes()): Likewise, but convert from network
2293         byte order.
2294         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
2295         incorrect tests. Check for constexpr too.
2296         * testsuite/experimental/net/internet/address/v4/creation.cc:
2297         Likewise.
2298         * testsuite/experimental/net/internet/address/v4/members.cc:
2299         Check that bytes_type is a standard-layout type.
2301 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2303         * include/experimental/internet (address_v4::to_string):
2304         Optimize.
2305         * testsuite/experimental/net/internet/address/v4/members.cc:
2306         Check more addresses.
2308 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2310         * include/ext/aligned_buffer.h (__aligned_buffer): Add
2311         diagnostic pragmas.
2313 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
2315         * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
2316         before dg-do.
2318 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2320         * testsuite/experimental/simd/tests/reductions.cc: Introduce
2321         max_distance as the type-dependent max error.
2323 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2325         * include/experimental/bits/simd_builtin.h (_S_set): Compare as
2326         int. The actual range of these indexes is very small.
2328 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2330         * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
2331         (_S_bit_shift_right): Declare constexpr. The implementation was
2332         already expecting constexpr evaluation.
2334 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2336         PR libstdc++/108030
2337         * include/experimental/bits/simd_detail.h
2338         (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
2339         __clang__.
2341 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2343         PR libstdc++/108030
2344         * include/experimental/bits/simd.h (__vector_broadcast):
2345         Implement via __vector_broadcast_impl instead of
2346         __call_with_n_evaluations + 2 lambdas.
2347         (__vector_broadcast_impl): New.
2349 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
2351         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
2352         Avoid destruction of the mutex pool.
2354 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
2356         * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
2357         on vxworks.
2358         * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2359         Likewise.
2361 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
2363         * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
2364         kernel mode.
2366 2023-02-20  Andreas Schwab  <schwab@linux-m68k.org>
2368         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2370 2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
2372         * include/experimental/bits/simd.h (__extract_part, split):
2373         Use reserved name for template parameter.
2375 2023-02-20  Andreas Schwab  <schwab@suse.de>
2377         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2379 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
2381         * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
2382         * doc/html/faq.html: Regenerate.
2384 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2386         * include/experimental/bits/simd_math.h (__hypot): Bitcasting
2387         between scalars requires the __bit_cast helper function instead
2388         of simd_bit_cast.
2390 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2392         * include/experimental/bits/simd_x86.h
2393         (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
2394         (_SimdImplX86::_S_less_equal): Do not call
2395         __builtin_is_constant_evaluated in constexpr-if.
2397 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2399         * testsuite/experimental/simd/tests/bits/verify.h
2400         (verify::verify): Use %zx for size_t in format string.
2402 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2404         * testsuite/experimental/simd/generate_makefile.sh: Generate and
2405         pre-compile pch.h, which includes all headers that do not depend
2406         on command-line macros.
2407         * testsuite/experimental/simd/tests/bits/main.h: New file.
2408         (iterate_abis, main): Moved from verify.h.
2409         * testsuite/experimental/simd/tests/bits/verify.h
2410         (iterate_abis, main): Moved to main.h.
2411         * testsuite/experimental/simd/tests/bits/conversions.h: Add
2412         include guard.
2413         (genHalfBits): Simplify.
2414         * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
2415         guard.
2416         (make_alternating_mask): Moved from mask_loadstore.
2417         * testsuite/experimental/simd/tests/bits/mathreference.h: Add
2418         include guard.
2419         * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
2420         * testsuite/experimental/simd/tests/mask_loadstore.cc
2421         (make_mask, make_alternating_mask): Removed.
2422         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
2423         * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
2424         Removed.
2425         * testsuite/experimental/simd/tests/abs.cc: Only include
2426         bits/main.h.
2427         Ditto.
2428         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
2429         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
2430         * testsuite/experimental/simd/tests/casts.cc: Ditto.
2431         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
2432         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
2433         * testsuite/experimental/simd/tests/generator.cc: Ditto.
2434         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
2435         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
2436         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2437         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
2438         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
2439         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
2440         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
2441         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
2442         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
2443         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
2444         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
2445         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
2446         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
2447         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
2448         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
2449         * testsuite/experimental/simd/tests/simd.cc: Ditto.
2450         * testsuite/experimental/simd/tests/sincos.cc: Ditto.
2451         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
2452         * testsuite/experimental/simd/tests/splits.cc: Ditto.
2453         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
2454         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
2455         * testsuite/experimental/simd/tests/where.cc: Ditto.
2457 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2459         * testsuite/experimental/simd/README.md: Document the timeout
2460         and timeout-factor directives. Minor typo fixed.
2462 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2464         PR libstdc++/108030
2465         * include/experimental/bits/simd_detail.h: Define
2466         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
2467         * include/experimental/bits/simd.h: Annotate lambdas with
2468         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
2469         * include/experimental/bits/simd_builtin.h: Ditto.
2470         * include/experimental/bits/simd_converter.h: Ditto.
2471         * include/experimental/bits/simd_fixed_size.h: Ditto.
2472         * include/experimental/bits/simd_math.h: Ditto.
2473         * include/experimental/bits/simd_neon.h: Ditto.
2474         * include/experimental/bits/simd_x86.h: Ditto.
2476 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2478         * include/experimental/bits/simd.h
2479         (_SimdWrapper::_M_is_constprop_none_of)
2480         (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
2481         computed result still satisfies __builtin_constant_p.
2483 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2485         * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
2486         ellipsis character.
2488 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2490         * include/Makefile.am: Add new header.
2491         * include/Makefile.in: Regenerate.
2492         * include/experimental/synchronized_value: New file.
2493         * testsuite/experimental/synchronized_value.cc: New test.
2495 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2497         * include/experimental/optional: Fix header name in comment.
2499 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2501         * include/std/format (__format::_Arg_store): New class template.
2502         (basic_format_args): Remove nested type _Store and add deduction
2503         guide from _Arg_store.
2504         (basic_format_arg, make_format_args): Adjust.
2505         * testsuite/std/format/arguments/lwg3810.cc: New test.
2507 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2509         * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
2510         constraints to constructors and add deleted overloads for the
2511         dangling cases, as per P2255R2.
2512         (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
2513         make dangling cases ill-formed.
2514         * testsuite/20_util/pair/dangling_ref.cc: New test.
2516 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2518         * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
2520 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2522         * include/ext/throw_allocator.h: Use reserved names for
2523         parameters.
2525 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2527         * testsuite/17_intro/names_pstl.cc: Add space after effective
2528         target name.
2530 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2532         * include/pstl/algorithm_fwd.h (__pattern_search_n)
2533         (__brick_unique_copy, __brick_adjacent_find)
2534         (__brick_generate_n, __pattern_generate_n): Use reserved names
2535         for parameters.
2536         * include/pstl/algorithm_impl.h (__brick_unique_copy)
2537         (__pattern_reverse, __brick_generate_n): Likewise.
2538         * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
2539         (__prefer_parallel_tag): Likewise.
2540         * include/pstl/glue_algorithm_impl.h (transform): Likewise.
2541         * include/pstl/glue_numeric_defs.h (adjacent_difference):
2542         Likewise.
2543         * include/pstl/numeric_impl.h (__brick_adjacent_difference):
2544         Likewise.
2545         * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
2546         * include/pstl/unseq_backend_simd.h (_Combiner)
2547         (__simd_min_element, __simd_minmax_element): Likewise.
2548         * testsuite/17_intro/names_pstl.cc: New test.
2550 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2552         * include/bits/fs_ops.h (create_directory): Use reserved name
2553         for parameter.
2554         * include/bits/ranges_algo.h (__contains_subrange_fn):
2555         Likewise.
2556         * include/bits/regex_automaton.h (_State_base::_M_print):
2557         Likewise.
2558         * include/bits/regex_automaton.tcc(_State_base::_M_print):
2559         Likewise.
2560         * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
2561         * include/experimental/bits/fs_ops.h (create_directory):
2562         Likewise.
2563         * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
2564         (recursive_timed_mutex:_M_clocklock): Likewise.
2565         * include/std/tuple (basic_common_reference): Likewise.
2566         * libsupc++/cxxabi_init_exception.h
2567         (__cxa_init_primary_exception): Likewise.
2568         * testsuite/17_intro/names.cc: Add checks.
2570 2023-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
2572         * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
2573         to www.open-std.org and https.
2574         * doc/html/manual/status.html: Regenerate.
2576 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2578         PR libstdc++/103934
2579         * include/std/atomic (atomic_flag_wait): Add.
2580         (atomic_flag_wait_explicit): Add.
2581         (atomic_flag_notify): Add.
2582         (atomic_flag_notify_explicit): Add.
2583         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
2584         Add test case to cover missing atomic_flag free functions.
2586 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2588         PR libstdc++/103934
2589         * include/std/atomic (atomic_flag_test): Add.
2590         (atomic_flag_test_explicit): Add.
2591         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
2592         test case to cover missing atomic_flag free functions.
2593         * testsuite/29_atomics/atomic_flag/test/implicit.cc:
2594         Likewise.
2596 2023-02-13  Gerald Pfeifer  <gerald@pfeifer.com>
2598         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
2599         "The Component Object Model" reference.
2600         * doc/html/manual/policy_data_structures.html: Regenerate.
2602 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
2604         * doc/xml/manual/containers.xml: Tweak a link to N1780
2605         (C++ standard).
2606         * doc/html/manual/associative.html: Regenerate.
2608 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
2610         * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
2611         * doc/html/manual/facets.html: Regenerate.
2613 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
2615         * doc/xml/manual/policy_data_structures_biblio.xml: Update
2616         link to "Worst-case efficient priority queues".
2617         * doc/html/manual/policy_data_structures.html: Regenerate.
2619 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
2621         * doc/xml/manual/using.xml: Document newly-freestanding
2622         headers and the effect of the -ffreestanding flag.
2623         * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
2624         completed.
2625         * doc/xml/manual/configure.xml: Document that hosted installs
2626         respect __STDC_HOSTED__.
2627         * doc/xml/manual/test.xml: Document how to run tests in
2628         freestanding mode.
2629         * doc/html/*: Regenerate.
2631 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
2633         * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
2634         (__find_last_if_fn): Likewise.
2636 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
2638         * include/std/type_traits: Add diagnostic pragmas around
2639         references to deprecated std::aligned_storage and
2640         std::aligned_union traits.
2641         * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
2642         Add dg-warning for et c++23.
2643         * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
2644         Likewise.
2645         * testsuite/20_util/aligned_storage/value.cc: Likewise.
2646         * testsuite/20_util/aligned_union/1.cc: Likewise.
2647         * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
2648         Likewise.
2650 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
2652         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
2653         * include/bits/c++config (_GLIBCXX23_DEPRECATED)
2654         (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
2655         * include/std/type_traits (aligned_storage, aligned_union)
2656         (aligned_storage_t, aligned_union_t): Deprecate for C++23.
2657         * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
2658         * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
2660 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
2662         * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
2663         * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
2664         consistent with other 'deprecated' macros.
2665         * include/std/type_traits (is_pod, is_pod_v): Use
2666         _GLIBCXX20_DEPRECATED_SUGGEST instead.
2668 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
2670         * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
2671         * Makefile.in: Regenerate.
2672         * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
2673         There's no history to be compatible with.
2674         * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
2675         source files from the build.
2676         * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2677         * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2678         * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2679         * src/Makefile.in: Regenerate.
2680         * src/c++11/Makefile.in: Regenerate.
2681         * src/c++17/Makefile.in: Regenerate.
2682         * src/c++20/Makefile.in: Regenerate.
2683         * src/c++98/Makefile.in: Regenerate.
2685 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
2687         * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
2688         filesystem, libbacktrace and experimental.
2689         * src/Makefile.in: Regenerate.
2691 2023-02-04  Hans-Peter Nilsson  <hp@axis.com>
2693         PR libstdc++/108672
2694         * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
2695         instead of int32_t.
2697 2023-02-04  Gerald Pfeifer  <gerald@pfeifer.com>
2699         * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
2700         * doc/html/manual/documentation_hacking.html: Regenerate.
2702 2023-02-04  François Dumont  <fdumont@gcc.gnu.org>
2704         * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
2705         storage to the move-from instance when allocators are equal.
2706         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
2707         New test case.
2709 2023-02-03  Samuel Thibault  <samuel.thibault@gnu.org>
2711         * config/os/gnu-linux/os_defines.h [!__linux__]
2712         (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
2714 2023-02-03  Patrick Palka  <ppalka@redhat.com>
2716         * include/bits/ranges_algo.h (__find_last_fn, find_last):
2717         Define.
2718         (__find_last_if_fn, find_last_if): Define.
2719         (__find_last_if_not_fn, find_last_if_not): Define.
2720         * testsuite/25_algorithms/find_last/1.cc: New test.
2721         * testsuite/25_algorithms/find_last_if/1.cc: New test.
2722         * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
2724 2023-02-03  Patrick Palka  <ppalka@redhat.com>
2726         * include/bits/ranges_algo.h (out_value_result): Define.
2727         (iota_result): Define.
2728         (__iota_fn, iota): Define.
2729         * testsuite/25_algorithms/iota/1.cc: New test.
2731 2023-02-03  Patrick Palka  <ppalka@redhat.com>
2733         * include/bits/ranges_algo.h (__contains_fn, contains): Define.
2734         (__contains_subrange_fn, contains_subrange): Define.
2735         * testsuite/25_algorithms/contains/1.cc: New test.
2736         * testsuite/25_algorithms/contains_subrange/1.cc: New test.
2738 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
2740         * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
2741         * doc/html/manual/abi.html: Regenerate.
2743 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2745         * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
2746         errc::function_not_supported instead of errc::not_supported.
2748 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2750         * include/std/sstream  (basic_stringbuf::view): Define for old
2751         std::string ABI.
2752         (basic_istringstream::view, basic_0stringstream::view)
2753         (basic_stringstream::view): Likewise.
2754         * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
2755         { dg-require-effective-target cxx11_abi }.
2756         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
2757         Likewise.
2758         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
2759         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
2760         Likewise.
2761         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
2762         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
2763         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
2764         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
2765         Likewise.
2767 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2769         PR libstdc++/108636
2770         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
2771         conversion operators for directory iterator comparisons with
2772         std::default_sentinel_t.
2773         * include/bits/fs_path.h (path::path(string_view, _Type))
2774         (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
2775         definitions to ...
2776         * src/c++17/fs_path.cc: ... here.
2777         * testsuite/27_io/filesystem/path/108636.cc: New test.
2779 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2781         * include/std/variant (variant::operator=): Implement resolution
2782         of LWG 3585.
2783         * testsuite/20_util/variant/lwg3585.cc: New test.
2785 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
2787         * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
2788         link to https.
2789         * doc/html/manual/using_exceptions.html: Regenerate.
2791 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
2793         * doc/xml/manual/debug.xml: Fix link to online GDB manual.
2794         * doc/html/manual/debug.html: Regenerate.
2796 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2798         * src/c++11/random.cc (random_device::_M_fini): Do not try to
2799         close the file handle if the target doesn't support the
2800         /dev/random and /dev/urandom files.
2802 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2804         * config/os/generic/error_constants.h (errc::value_too_large)
2805         [__AVR__]: Define.
2806         * src/c++11/system_error.cc
2807         (system_category::default_error_condition) [__AVR__]: Only match
2808         recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
2809         * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
2810         for ENOENT etc. in switch.
2811         (fs::remove_all) [__AVR__]: Likewise.
2812         * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
2813         close etc.
2815 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2817         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
2818         embed_zoneinfo=no
2819         * configure: Regenerate.
2821 2023-02-01  Hans-Peter Nilsson  <hp@axis.com>
2823         PR testsuite/108632
2824         * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
2825         struct at end of S0.
2827 2023-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
2829         * doc/xml/manual/shared_ptr.xml: Move links from both
2830         http://open-std.org and http://www.open-std.org to
2831         https://www.open-std.org.
2832         * doc/html/manual/memory.html: Regenerate.
2834 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
2836         * doc/xml/manual/appendix_contributing.xml: Adjust link to
2837         ISO C++ standard at ANSI.
2838         Move link to www.open-std.org to https.
2839         * doc/html/manual/appendix_contributing.html: Regenerate.
2841 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
2843         * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
2844         links to https.
2845         * doc/html/manual/documentation_hacking.html: Regenerate.
2847 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
2849         * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
2850         * doc/html/manual/abi.html: Regenerate.
2852 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
2854         PR libstdc++/108568
2855         * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
2856         include features.h if present and then check __GLIBC__ and
2857         __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
2858         __GLIBC_PREREQ which isn't defined yet.
2860 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
2862         * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
2863         string literal.
2865 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
2867         PR libstdc++/108554
2868         * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
2870 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
2872         * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
2873         rules named "+" for compatibility with older tzdata.zi files.
2875 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
2877         PR libstdc++/108554
2878         * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
2879         nonnull attribute.
2880         (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
2881         attributes.
2882         * testsuite/23_containers/map/modifiers/108554.cc: New test.
2884 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
2886         PR libstdc++/108530
2887         * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
2888         /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
2890 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
2892         * doc/xml/manual/intro.xml: Update links to www.open-std.org to
2893         use https.
2894         * doc/html/manual/bugs.html: Regenerate.
2896 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
2898         PR libstdc++/108530
2899         * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
2900         /etc/sysconfig/clock.
2902 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
2904         PR libstdc++/102301
2905         * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
2906         std::make_reverse_iterator.
2907         * include/std/tuple: Include <bits/ranges_util.h> for subrange.
2908         (make_from_tuple): Add static assertion from P2255 to diagnose
2909         dangling references.
2910         * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
2911         * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
2913 2023-01-23  François Dumont  <fdumont@gcc.gnu.org>
2915         * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
2916         (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
2917         (_Safe_iterator::operator++(int)): Use latter.
2918         (_Safe_iterator::operator--(int)): Likewise.
2919         (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
2920         check.
2921         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
2922         New.
2923         (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
2924         (_Safe_local_iterator::operator++(int)): Use latter.
2925         * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
2926         entry associated to the array entry.
2928 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
2930         * include/bits/fs_path.h (u8path): Add deprecated attribute.
2931         * testsuite/27_io/filesystem/path/construct/90281.cc: Add
2932         -Wno-deprecated-declarations for C++20 and later.
2933         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2934         Likewise.
2935         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2936         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2937         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
2939 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
2941         * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
2942         Always call _M_fini and _M_getentropy.
2944 2023-01-18  Gerald Pfeifer  <gerald@pfeifer.com>
2946         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
2947         to www.open-std.org to use https.
2948         (COM: Component Model Object Technologies): Rename from...
2949         (The Component Object Model): ...to.
2950         * doc/html/manual/policy_data_structures.html: Regenerate.
2952 2023-01-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
2954         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
2955         * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
2956         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
2958 2023-01-17  Jonathan Wakely  <jwakely@redhat.com>
2960         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
2961         of $host. Fix check for file being present during native build.
2962         * configure: Regenerate.
2964 2023-01-17  Martin Liska  <mliska@suse.cz>
2966         * src/libbacktrace/Makefile.in: Regenerate.
2968 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2970         * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
2972 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2974         PR libstdc++/108413
2975         * include/c_compatibility/stdatomic.h: Change copyright line to
2976         be consistent with other headers contributed under DCO terms.
2977         * include/std/expected: Add full stop to copyright line.
2978         * src/c++20/tzdb.cc: Likewise.
2980 2023-01-15  Gerald Pfeifer  <gerald@pfeifer.com>
2982         * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
2983         https.
2984         * doc/xml/manual/status_cxx2017.xml: Ditto.
2985         * doc/xml/manual/status_cxx2020.xml: Ditto.
2986         * doc/xml/manual/status_cxx2023.xml: Ditto.
2987         * doc/html/manual/status.html: Regenerate.
2989 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
2991         * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
2992         and fail gracefully if defining the weak symbol doesn't work.
2994 2023-01-15  François Dumont  <fdumont@gcc.gnu.org>
2996         PR libstdc++/108288
2997         * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
2998         fix to other iterator category.
2999         (_Safe_iterator<>::operator--(int)): Likewise.
3000         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
3001         Fix deadlock.
3002         * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
3003         (invalid_local_iterator_post_increment): New.
3004         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
3005         New test.
3006         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
3007         New test.
3009 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
3011         * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
3012         dg-options.
3014 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
3016         * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
3018 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
3020         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
3021         windows.h. Add pecoff as FORMAT_FILE.
3022         * config.h.in: Regenerate.
3023         * configure: Regenerate.
3024         * src/libbacktrace/Makefile.am: Regenerate.
3025         * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
3027 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
3029         * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
3030         raw __name if __cxa_demangle could not demangle it.
3032 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
3034         PR libstdc++/108409
3035         * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
3036         variable.
3038 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
3040         * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
3041         loading tzdb.
3042         * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
3043         effective target.
3044         * testsuite/std/time/tzdb_list/1.cc: Likewise.
3046 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
3048         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
3049         --with-libstdcxx-zoneinfo-dir configure option with
3050         --with-libstdcxx-zoneinfo with yes/no/static choices as well as
3051         a directory.
3052         * config.h.in: Regenerate.
3053         * configure: Regenerate.
3054         * doc/xml/manual/configure.xml: Document configure option.
3055         * doc/html/manual/configure.html: Regenerate.
3056         * src/c++20/Makefile.am: Generate tzdata.zi.h header.
3057         * src/c++20/Makefile.in: Regenerate.
3058         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
3059         null pointer if no directory is configured.
3060         (zoneinfo_dir): Replace with ...
3061         (zoneinfo_file): New function.
3062         (tzdata_stream): New istream class.
3063         (remote_version, reload_tzdb): Use tzdata_stream.
3064         * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
3065         Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
3066         tzdata.zi file in default location.
3067         * src/c++20/tzdata.zi: New file.
3069 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
3071         * include/bits/chrono_io.h (operator<<): Fix syntax errors.
3072         * testsuite/std/time/month_day/io.cc: New test.
3073         * testsuite/std/time/month_day_last/io.cc: New test.
3074         * testsuite/std/time/month_weekday/io.cc: New test.
3075         * testsuite/std/time/month_weekday_last/io.cc: New test.
3076         * testsuite/std/time/weekday_indexed/io.cc: New test.
3077         * testsuite/std/time/weekday_last/io.cc: New test.
3078         * testsuite/std/time/year_month/io.cc: New test.
3079         * testsuite/std/time/year_month_day_last/io.cc: New test.
3080         * testsuite/std/time/year_month_weekday/io.cc: New test.
3081         * testsuite/std/time/year_month_weekday_last/io.cc: New test.
3083 2023-01-14  François Dumont  <fdumont@gcc.gnu.org>
3085         * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
3086         specifications.
3087         * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
3088         export.
3090 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
3092         * include/bits/std_mutex.h: Include <errno.h>.
3094 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
3096         * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
3097         * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
3098         * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
3099         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
3100         std::make_unique with a freestanding-compatible wrapper around
3101         unique_ptr.
3102         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
3103         Don't test for presence of __cpp_lib_string_contains on !HOSTED.
3104         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
3105         Ditto.
3106         * testsuite/std/ranges/version_c++23.cc: Don't test for presence
3107         of __cpp_lib_ranges in !HOSTED.
3109 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
3111         * include/Makefile.am: Install bits/char_traits.h,
3112         std/string_view
3113         * include/Makefile.in: Regenerate.
3114         * include/bits/char_traits.h: Gate hosted-only, wchar-only and
3115         mbstate-only bits behind appropriate #ifs.
3116         * include/std/string_view: Gate <iostream> functionality behind
3117         HOSTED.
3118         * include/std/version: Enable __cpp_lib_constexpr_string_view
3119         and __cpp_lib_starts_ends_with in !HOSTED.
3120         * include/std/ranges: Re-enable __is_basic_string_view on
3121         freestanding, include <string_view> directly.
3122         * include/precompiled/stdc++.h: Include <string_view> when
3123         !HOSTED too.
3124         * testsuite/20_util/function_objects/searchers.cc: Skip testing
3125         boyer_moore searchers on freestanding
3126         * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
3127         <string>-related tests behind __STDC_HOSTED__.
3128         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
3129         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
3130         unused <stdexcept> include.
3131         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
3132         unused <vector> include.
3133         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3134         Guard <string> related testing behind __STDC_HOSTED__.
3135         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3136         Guard <stdexcept> related tests behind __STDC_HOSTED__.
3137         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3138         Ditto.
3139         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3140         Guard <stdexcept> tests behind __STDC_HOSTED__.
3141         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
3142         Enable test on freestanding, guard <stdexcept> bits behind
3143         __STDC_HOSTED__.
3144         * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3145         Guard <stdexcept> bits behind __STDC_HOSTED__.
3146         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3147         Ditto.
3149 2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
3151         PR libstdc++/86419
3152         * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
3153         errors in incomplete multibyte sequences.
3154         (utf16_in): Remove surrogates parameter. Fix conditions for
3155         returning partial.
3156         (utf16_out): Fix condition for returning partial.
3157         (ucs2_in): Do not pass surrogates argument to utf16_in.
3158         * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
3159         * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
3160         tests.
3161         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
3162         test.
3164 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
3166         PR libstdc++/108331
3167         * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
3168         __GTHREAD_LEGACY_MUTEX_T if defined.
3170 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
3172         PR libstdc++/108327
3173         * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
3174         Export __try_use_facet specializations for facets in namespace
3175         __gnu_cxx_ldbl128.
3176         * config/os/gnu-linux/ldbl-ieee128-extra.ver
3177         (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
3178         __gnu_cxx_ieee128.
3179         * testsuite/util/testsuite_abi.cc: Add to lists of known and
3180         latest versions.
3182 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
3184         * include/bits/std_mutex.h: Remove <system_error> include.
3185         * include/std/condition_variable: Add <bits/error_constants.h>
3186         include.
3187         * include/std/mutex: Likewise.
3188         * include/std/shared_mutex: Likewise.
3190 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
3192         PR libstdc++/77691
3193         * include/experimental/memory_resource
3194         (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
3195         (do_allocate, do_deallocate): Check it.
3196         * testsuite/experimental/memory_resource/new_delete_resource.cc:
3197         Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
3199 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
3201         * doc/xml/manual/abi.xml: Add latest library versions.
3202         * doc/html/manual/abi.html: Regenerate.
3204 2023-01-12  François Dumont  <fdumont@gcc.gnu.org>
3206         PR libstdc++/107189
3207         * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
3208         unused _Alloc_node instance.
3210 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
3212         * include/bits/atomic_wait.h (__detail::__platform_wait_t):
3213         Define as unsigned long if always lock-free, and unsigned int
3214         otherwise.
3216 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
3218         * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
3219         __catch macros for exception handling.
3221 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
3223         PR libstdc++/108221
3224         * include/bits/stl_algobase.h (__lg): Replace six overloads with
3225         a single function template for all integer types.
3226         * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
3227         arithmetic results back to _Distance.
3229 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
3231         PR libstdc++/108221
3232         * include/std/span (span::span()): Un-simplify constraint to
3233         work for size_t of lesser rank than int.
3235 2023-01-07  LIU Hao  <lh_mouse@126.com>
3237         PR middle-end/108300
3238         * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
3239         <windows.h>.
3240         * src/c++11/thread.cc: Likewise.
3241         * src/c++17/fs_ops.cc: Likewise.
3242         * src/filesystem/ops.cc: Likewise.
3244 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
3246         PR libstdc++/108228
3247         * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
3249 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
3251         PR libstdc++/108235
3252         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
3253         template and partial specialization for synchronizing access to
3254         time_zone::_Impl::infos.
3255         (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
3256         rules_counter.
3258 2023-01-06  Patrick Palka  <ppalka@redhat.com>
3260         PR libstdc++/108260
3261         * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
3262         * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
3263         (__cpp_lib_ranges_chunk): Likewise.
3264         (__cpp_lib_ranges_slide): Likewise.
3265         (__cpp_lib_ranges_chunk_by): Likewise.
3266         (__cpp_lib_ranges_join_with): Likewise.
3267         (__cpp_lib_ranges_repeat): Likewise.
3268         (__cpp_lib_ranges_stride): Likewise.
3269         (__cpp_lib_ranges_cartesian_product): Likewise.
3270         (__cpp_lib_ranges_as_rvalue): Likewise.
3271         * include/std/version: Ditto.
3272         * testsuite/20_util/tuple/p2321r2.cc: Verify value of
3273         feature-test macro.
3274         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
3275         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
3276         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
3277         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
3278         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
3279         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
3280         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
3281         * testsuite/std/ranges/repeat/1.cc: Likewise.
3282         * testsuite/std/ranges/zip/1.cc: Likewise.
3283         * testsuite/std/ranges/version_c++23.cc: New test.
3285 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
3287         PR libstdc++/108214
3288         * include/std/bitset (operator>>): Use alloca in the right
3289         scope, not in a constructor.
3290         * testsuite/20_util/bitset/io/input.cc: Check case from PR.
3292 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
3294         PR libstdc++/108221
3295         * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
3296         Disable visiting floating-point types.
3298 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
3300         PR libstdc++/108288
3301         * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
3302         (_Safe_iterator::operator--(int)): Do not hold lock around
3303         construction of return value.
3305 2023-01-05  John David Anglin  <danglin@gcc.gnu.org>
3307         * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
3308         (__exchange_and_add): Use _PA_LDCW_INSN.  Use ordered store for
3309         lock release.  Revise loop.
3310         (__atomic_add): Likewise.
3312 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
3314         PR libstdc++/108212
3315         * python/libstdcxx/v6/printers.py (_utc_timezone): New global
3316         variable.
3317         (StdChronoTimePointPrinter::to_string): Use it.
3319 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
3321         PR libstdc++/108290
3322         * include/std/functional (_Bind_front): Add no_unique_address
3323         attribute to data members.
3324         * testsuite/20_util/function_objects/bind_front/107784.cc: Check
3325         size of call wrappers with empty types for targets and bound
3326         arguments.
3328 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
3330         PR libstdc++/108211
3331         * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
3332         using only last component of the name.
3334 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
3336         PR libstdc++/108228
3337         PR libstdc++/108235
3338         * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
3339         the latest symbol version.
3340         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
3341         atomic<_Node*> is not always lock free.
3342         (USE_ATOMIC_LIST_HEAD): New macro.
3343         [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
3344         definition of weak symbol.
3345         (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
3346         (tzdb_list::_Node::_S_list_head): New function for accessing
3347         list head efficiently.
3348         (tzdb_list::_Node::_S_cache_list_head): New function for
3349         updating _S_list_head.
3351 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
3353         PR libstdc++/108265
3354         * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
3355         duration rep is unsigned.
3356         * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
3358 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
3360         PR libstdc++/108228
3361         * config/abi/pre/gnu.ver (GLIBCXX_3.4):
3362         Add __gnu_cxx::zoneinfo_dir_override().
3364 2023-01-04  Jonathan Wakely  <jwakely@redhat.com>
3366         PR libstdc++/108258
3367         * include/std/array (__array_traits<T, 0>::operator T*()): Add
3368         constexpr.
3369         * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
3370         std::array<T, 0>::data().
3373 Copyright (C) 2023 Free Software Foundation, Inc.
3375 Copying and distribution of this file, with or without modification,
3376 are permitted in any medium without royalty provided the copyright
3377 notice and this notice are preserved.