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