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