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