]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/utility.h: Fix comment typos.
4
5 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
6
7 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
8 in exception.
9 (fs::temp_directory_path(error_code&)): Rearrange to more
10 closely match the structure of the first overload.
11 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
12 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
13 Check that exception contains the path.
14 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
15 Likewise.
16
17 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
18
19 PR libstdc++/88881
20 * src/filesystem/ops.cc (has_trailing_slash): New helper
21 function.
22 (fs::status): Strip trailing slashes.
23 (fs::symlink_status): Likewise.
24 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
25 Clean the environment before each test and use TMP instead of
26 TMPDIR so the test passes on Windows.
27
28 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
29
30 * src/filesystem/dir-common.h (_Dir_base::_At_path):
31 Use char_type consistently for paths.
32
33 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
34
35 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
36 current() returning _At_path.
37 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
38 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
39 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
40 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
41 current() returning _At_path.
42 (_Dir::_Dir, _Dir::open_subdir): Adjust.
43
44 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
45
46 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
47 Always store pathname if we don't have openat or unlinkat,
48 because the full path is needed to open sub-directories and
49 remove entries.
50
51 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
52
53 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
54 functions are available.
55
56 2022-06-27 Alexandre Oliva <oliva@adacore.com>
57
58 * testsuite/20_util/to_chars/long_double.cc: Use cmath
59 long double overloads for nexttoward and ldexp.
60
61 2022-06-27 Alexandre Oliva <oliva@adacore.com>
62
63 * testsuite/experimental/simd/standard_abi_usable.cc: Require
64 cmath support.
65 * testsuite/experimental/simd/standard_abi_usable_2.cc:
66 Likewise.
67
68 2022-06-27 Alexandre Oliva <oliva@adacore.com>
69
70 * testsuite/26_numerics/complex/proj.cc: Skip test in the
71 circumstances in which the implementation of proj is known to
72 be broken.
73
74 2022-06-27 Alexandre Oliva <oliva@adacore.com>
75
76 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
77 _GLIBCXX_HAVE_OPENAT.
78
79 2022-06-27 Alexandre Oliva <oliva@adacore.com>
80
81 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
82 (test06): Don't create symlinks when NO_SYMLINKS is defined.
83
84 2022-06-27 Alexandre Oliva <oliva@adacore.com>
85
86 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
87 Add -Wl,--gc-sections for RTEMS targets.
88 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
89 xfail on RTEMS.
90 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
91 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
92 Execution-time xfail on RTEMS.
93 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
94 Likewise.
95
96 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
97
98 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
99
100 2022-06-27 Joel Brobecker <brobecker@adacore.com>
101 Jonathan Wakely <jwakely@redhat.com>
102
103 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
104 Always include a counter in the filename returned.
105
106 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
107
108 * include/bits/move_only_function.h (_Never_valueless_alt):
109 Define partial specialization for std::move_only_function.
110
111 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
112
113 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
114 as deleted.
115 (__accepted_index, _Extra_visit_slot_needed): Replace class
116 templates with variable templates.
117
118 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
119
120 * include/bits/fs_path.h (__is_path_iter_src): Replace class
121 template with variable template.
122
123 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
124
125 * include/bits/chrono.h (is_clock_v): Define to false.
126 (is_clock_v<T>): Define partial specialization for true cases.
127 (is_clock): Define in terms of is_clock_v.
128
129 2022-06-24 Xi Ruoyao <xry111@xry111.site>
130
131 * scripts/extract_symvers.in: Use grep -E instead of egrep.
132 * scripts/run_doxygen: Likewise.
133
134 2022-06-24 Alexandre Oliva <oliva@adacore.com>
135
136 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
137 openat.
138 * configure, config.h.in: Rebuilt.
139 * src/filesystem/dir-common.h (openat): Use ::openat if
140 _GLIBCXX_HAVE_OPENAT.
141 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
142 _GLIBCXX_HAVE_OPENAT.
143
144 2022-06-24 Alexandre Oliva <oliva@adacore.com>
145
146 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
147 rtems.
148 * testsuite/experimental/filesystem/operations/rename.cc:
149 Likewise.
150
151 2022-06-24 Alexandre Oliva <oliva@adacore.com>
152
153 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
154 when appropriate.
155 * testsuite/lib/libstdc++.exp
156 (check_v3_target_fs_last_write_time): New.
157 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
158 New.
159 * testsuite/27_io/filesystem/operations/last_write_time.cc:
160 Skip the test if the features are unavailable.
161 * testsuite/experimental/filesystem/operations/last_write_time.cc:
162 Likewise.
163
164 2022-06-24 Alexandre Oliva <oliva@adacore.com>
165
166 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
167 appropriate.
168 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
169 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
170 New.
171 * testsuite/27_io/filesystem/operations/space.cc: Require
172 target-fs-space.
173 * testsuite/experimental/filesystem/operations/space.cc:
174 Likewise.
175
176 2022-06-24 Alexandre Oliva <oliva@adacore.com>
177
178 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
179 mingw and when create_symlink is a dummy.
180 * testsuite/27_io/filesystem/operations/symlink_status.cc:
181 Drop mingw xfail.
182 (test01, test02): Don't create symlinks when NO_SYMLINKS is
183 defined.
184 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
185 Likewise.
186 * testsuite/27_io/filesystem/operations/copy.cc (test02):
187 Likewise.
188 * testsuite/27_io/filesystem/operations/create_directories.cc
189 (test04): Likewise.
190 * testsuite/27_io/filesystem/operations/create_directory.cc
191 (test01): Likewise.
192 * testsuite/27_io/filesystem/operations/permissions.cc
193 (test03, test04): Likewise.
194 * testsuite/27_io/filesystem/operations/remove.cc (test01):
195 Likewise.
196 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
197 Likewise.
198 * testsuite/27_io/filesystem/operations/rename.cc
199 (test_symlinks): Likewise.
200 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
201 (test01): Likewise.
202 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
203 (test06): Likewise.
204 * testsuite/experimental/filesystem/operations/copy.cc
205 (test01): Likewise.
206 * testsuite/experimental/filesystem/operations/create_directories.cc
207 (test04): Likewise.
208 * testsuite/experimental/filesystem/operations/create_directory.cc
209 (test01): Likewise.
210 * testsuite/experimental/filesystem/operations/permissions.cc
211 (test03, test04): Likewise.
212 * testsuite/experimental/filesystem/operations/remove.cc
213 (test01): Likewise.
214 * testsuite/experimental/filesystem/operations/remove_all.cc
215 (test01): Likewise.
216 * testsuite/experimental/filesystem/operations/rename.cc
217 (test01): Likewise.
218 * testsuite/lib/libstdc++.exp
219 (v3_check_preprocessor_condition): Add optional inc parameter.
220 Add it to the test program after include bits/c++config.h.
221 (check_v3_target_fs_symlinks): New.
222 * testsuite/lib/dg-options.exp
223 (dg-require-target-fs-symlinks): New.
224 * testsuite/27_io/filesystem/operations/read_symlink.cc:
225 Replace mingw xfail with require target-fs-symlinks.
226 * testsuite/experimental/filesystem/operations/read_symlink.cc:
227 Likewise.
228
229 2022-06-24 Alexandre Oliva <oliva@adacore.com>
230
231 * testsuite/27_io/filesystem/operations/copy.cc (test02):
232 Select TO after creating FROM.
233 (test03, test04): Likewise.
234 * testsuite/experimental/filesystem/operations/copy.cc
235 (test02, test03, test04): Likewise.
236
237 2022-06-24 Alexandre Oliva <oliva@adacore.com>
238
239 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
240 explicit cancellation point in case sleep_for lacks one.
241
242 2022-06-24 Alexandre Oliva <oliva@adacore.com>
243
244 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
245 -lbsd for RTEMS targets.
246
247 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
248
249 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
250 rmdir to remove directories.
251 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
252 Likewise.
253
254 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
255
256 * testsuite/26_numerics/random/random_device/entropy.cc: Use
257 numeric_limits<unsigned>::digits.
258
259 2022-06-22 Alexandre Oliva <oliva@adacore.com>
260
261 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
262 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
263
264 2022-06-22 Alexandre Oliva <oliva@adacore.com>
265
266 * testsuite/30_threads/this_thread/60421.cc (test02): Call
267 sched_yield.
268
269 2022-06-22 Alexandre Oliva <oliva@adacore.com>
270
271 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
272
273 2022-06-22 Alexandre Oliva <oliva@adacore.com>
274
275 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
276 global struct bitset.
277 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
278 * testsuite/23_containers/bitset/input/1.cc: Likewise.
279 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
280 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
281
282 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
283
284 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
285 missing #include.
286
287 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
288
289 PR libstdc++/105995
290 * include/bits/basic_string.h (_M_use_local_data): Initialize
291 the entire SSO buffer.
292 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
293
294 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
295
296 PR libstdc++/101482
297 * include/ext/vstring.h (operator==): Always check lengths
298 before comparing.
299
300 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
301
302 PR libstdc++/105717
303 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
304 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
305 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
306 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
307 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
308 const allocator_type&, true_type)): Use this.insert range.
309 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
310 const allocator_type&, false_type)): Use _M_insert.
311 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
312 is done.
313 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
314 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
315
316 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
317
318 PR libstdc++/62187
319 * include/bits/basic_string.h (operator==): Always compare
320 lengths before checking string contents.
321 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
322 Reorder arguments.
323
324 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
325
326 PR libstdc++/59048
327 * include/bits/basic_string.h (compare): Define inline.
328 * include/bits/basic_string.tcc (compare): Remove out-of-line
329 definitions.
330 * include/bits/cow_string.h (compare): Define inline.
331 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
332 New test.
333
334 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
335
336 * include/bits/new_allocator.h: Fix indentation.
337 * include/ext/malloc_allocator.h: Likewise.
338
339 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
340
341 PR libstdc++/105957
342 * include/bits/allocator.h (allocator::allocate): Check for
343 overflow in constexpr allocation.
344 * testsuite/20_util/allocator/105975.cc: New test.
345
346 2022-06-13 Mark Mentovai <mark@mentovai.com>
347
348 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
349 Rename to __nul_terminated to avoid colliding with a macro in
350 Apple's SDK.
351
352 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
353
354 * include/std/atomic (__atomic_val_t): Use __type_identity_t
355 instead of atomic<T>::value_type, as per LWG 3220.
356 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
357
358 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
359
360 PR libstdc++/105844
361 * include/experimental/numeric (experimental::gcd): Simplify
362 assertions. Use __abs_r instead of __absu.
363 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
364 overflow can be detected.
365 * include/std/numeric (__detail::__absu): Rename to __abs_r and
366 change to allow signed result type, so overflow can be detected.
367 (__detail::__lcm): Remove.
368 (gcd): Simplify assertions. Use __abs_r instead of __absu.
369 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
370 be detected.
371 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
372 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
373 * testsuite/26_numerics/gcd/105844.cc: New test.
374 * testsuite/26_numerics/lcm/105844.cc: New test.
375
376 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
377
378 PR libstdc++/105880
379 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
380 prevent destruction during termination.
381 (__eh_globals_init::_M_init): Replace with static member _S_init.
382 (__cxxabiv1::__cxa_get_globals_fast): Update.
383 (__cxxabiv1::__cxa_get_globals): Likewise.
384
385 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
386
387 * include/bits/basic_string.h (__hash_str_base): New class
388 template.
389 (hash<basic_string<C, char_traits<C>, A>>): Define partial
390 specialization for each of the standard character types.
391 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
392 (hash<u32string>): Remove explicit specializations.
393 * include/std/string (__hash_string_base): Remove class
394 template.
395 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
396 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
397 specializations.
398 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
399 custom allocators.
400 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
401 Likewise.
402
403 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
404
405 PR libstdc++/105671
406 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
407 always_inline attribute.
408
409 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
410
411 PR libstdc++/105681
412 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
413 Limit ga_sizes array to values that fit in size_t.
414 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
415 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
416 (sfmt216091_64): Do not declare.
417
418 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
419
420 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
421 lookup for ios_errc and future_errc check versioned namespace.
422 (StdAtomicPrinter): Strip versioned namespace from typename.
423
424 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
425
426 * src/c++11/Makefile.am: Add new source file.
427 * src/c++11/Makefile.in: Regenerate.
428 * src/c++11/cxx11-ios_failure.cc (iostream_category):
429 Move to ...
430 * src/c++11/ios_errcat.cc: New file.
431 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
432 std::iostream_category() is defined and used for std::io_errc.
433
434 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
435
436 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
437 Add 'constexpr' as per LWG 3643.
438 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
439
440 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
441
442 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
443 comment.
444 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
445 here.
446 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
447 <bits/functional_hash.h>.
448 * include/bits/unordered_map.h: Include required headers.
449 * include/bits/unordered_set.h: Likewise.
450 * include/std/unordered_map: Do not include headers for indirect
451 dependencies.
452 * include/std/unordered_set: Likewise.
453
454 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
455
456 * include/bits/ranges_algobase.h: Do not include
457 <bits/stl_iterator_base_types.h>.
458 * include/std/string: Likewise.
459 * include/std/variant: Likewise.
460
461 2022-05-26 Nathan Sidwell <nathan@acm.org>
462
463 * include/bits/hashtable.h: Include required headers.
464 * include/bits/hashtable_policy.h: Likewise.
465 * include/bits/stl_heap.h: Likewise.
466 * include/bits/stl_iterator_base_funcs.h: Likewise.
467
468 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
469
470 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
471 Strip typename from version namespace.
472
473 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
474
475 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
476 versioned namespace from the template argument too.
477
478 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
479
480 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
481 Moved to...
482 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
483 ...here.
484 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
485 Moved to...
486 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
487 ...here.
488 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
489 Moved to...
490 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
491 ...here.
492 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
493 Moved to...
494 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
495 ...here.
496 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
497 Moved to...
498 * testsuite/21_strings/basic_string/operations/contains/char.cc:
499 ...here.
500 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
501 Moved to...
502 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
503 ...here.
504 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
505 Moved to...
506 * testsuite/21_strings/basic_string/operations/data/char.cc:
507 ...here.
508 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
509 Moved to...
510 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
511 ...here.
512 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
513 Moved to...
514 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
515 ...here.
516 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
517 Moved to...
518 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
519 ...here.
520 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
521 Moved to...
522 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
523 ...here.
524 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
525 Moved to...
526 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
527 ...here.
528 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
529 Moved to...
530 * testsuite/21_strings/basic_string/operations/substr/char.cc:
531 ...here.
532 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
533 Moved to...
534 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
535 ...here.
536 * testsuite/21_strings/basic_string/range_access/char/1.cc:
537 Moved to...
538 * testsuite/21_strings/basic_string/range_access/char.cc:
539 ...here.
540 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
541 Moved to...
542 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
543 ...here.
544 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
545 Moved to...
546 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
547 ...here.
548 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
549 Moved to...
550 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
551 ...here.
552 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
553 Moved to...
554 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
555 ...here.
556 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
557 Moved to...
558 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
559 ...here.
560 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
561 Moved to...
562 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
563 ...here.
564 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
565 Moved to...
566 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
567 ...here.
568 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
569 Moved to...
570 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
571 ...here.
572 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
573 Moved to...
574 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
575 ...here.
576 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
577 Moved to...
578 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
579 ...here.
580 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
581 Moved to...
582 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
583 ...here.
584 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
585 Moved to...
586 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
587 ...here.
588 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
589 Moved to...
590 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
591 ...here.
592 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
593 Moved to...
594 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
595 ...here.
596 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
597 Moved to...
598 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
599 ...here.
600 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
601 Moved to...
602 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
603 ...here.
604 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
605 Moved to...
606 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
607 ...here.
608 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
609 Moved to...
610 * testsuite/21_strings/basic_string_view/range_access/char.cc:
611 ...here.
612 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
613 Moved to...
614 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
615 ...here.
616 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
617 Moved to...
618 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
619 ...here.
620 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
621 Moved to...
622 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
623 ...here.
624 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
625 Moved to...
626 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
627 ...here.
628 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
629 Moved to...
630 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
631 ...here.
632 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
633 Moved to...
634 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
635 ...here.
636 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
637 Moved to...
638 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
639 ...here.
640 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
641 Moved to...
642 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
643 ...here.
644 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
645 Moved to...
646 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
647 ...here.
648 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
649 Moved to...
650 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
651 ...here.
652 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
653 Moved to...
654 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
655 ...here.
656 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
657 Moved to...
658 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
659 ...here.
660 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
661 Moved to...
662 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
663 ...here.
664 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
665 Moved to...
666 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
667 ...here.
668 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
669 Moved to...
670 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
671 ...here.
672 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
673 Moved to...
674 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
675 ...here.
676 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
677 Moved to...
678 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
679 ...here.
680 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
681 Moved to...
682 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
683 ...here.
684 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
685 Moved to...
686 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
687 ...here.
688
689 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
690
691 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
692 Moved to...
693 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
694 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
695 Moved to...
696 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
697 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
698 Moved to...
699 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
700
701 2022-05-25 Jason Merrill <jason@redhat.com>
702
703 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
704 constexpr.
705
706 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
707
708 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
709 Run fewer iterations for simulator targets.
710 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
711 Likewise.
712 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
713 Likewise.
714 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
715 Likewise.
716 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
717 Likewise.
718 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
719 Likewise.
720 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
721 Likewise.
722
723 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
724
725 * include/bits/char_traits.h: Only include <cstdint> when
726 necessary.
727 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
728 uintptr_t.
729 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
730 * src/c++17/floating_to_chars.cc: Likewise.
731 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
732 * testsuite/20_util/assume_aligned/3.cc: Likewise.
733 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
734
735 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
736
737 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
738 here.
739 * include/bits/cow_string.h: Include it here.
740
741 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
742
743 * include/Makefile.am: Add new header.
744 * include/Makefile.in: Regenerate.
745 * include/bits/memory_resource.h: New file.
746 * include/std/deque: Include <bits/memory_resource.h>.
747 * include/std/forward_list: Likewise.
748 * include/std/list: Likewise.
749 * include/std/map: Likewise.
750 * include/std/memory_resource (pmr::memory_resource): Move to
751 new <bits/memory_resource.h> header.
752 (pmr::polymorphic_allocator): Likewise.
753 * include/std/regex: Likewise.
754 * include/std/set: Likewise.
755 * include/std/stacktrace: Likewise.
756 * include/std/string: Likewise.
757 * include/std/unordered_map: Likewise.
758 * include/std/unordered_set: Likewise.
759 * include/std/vector: Likewise.
760 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
761 Remove <memory_resource> header and check construction.
762 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
763 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
764 Likewise.
765 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
766 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
767 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
768 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
769 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
770 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
771 Likewise.
772 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
773 Likewise.
774 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
775 Likewise.
776 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
777 Likewise.
778 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
779 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
780
781 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
782
783 * include/std/memory_resource (polymorphic_allocator): Add
784 non-template equality operator, as proposed for LWG 3683.
785 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
786
787 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
788
789 * src/c++17/memory_resource.cc (set_default_resource): Use
790 memory_order_acq_rel.
791 (get_default_resource): Use memory_order_acquire.
792
793 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
794
795 * include/std/memory_resource (new_delete_resource): Add
796 nodiscard, returns_nonnull and const attributes.
797 (null_memory_resource): Likewise.
798 (set_default_resource, get_default_resource): Add returns_nonnull
799 attribute.
800 (memory_resource::is_equal): Add nodiscard attribute.
801 (operator==, operator!=): Likewise.
802
803 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
804
805 * include/bits/ios_base.h (io_category): Add const and nodiscard
806 attributes.
807 (make_error_code, make_error_condition): Add nodiscard.
808 * include/std/future (future_category): Add const and nodiscard.
809 (make_error_code, make_error_condition): Add nodiscard.
810 * include/std/system_error (generic_category system_category):
811 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
812 (error_code::value, error_code::category, error_code::operator bool)
813 (error_condition::value, error_condition::category)
814 (error_condition::operator bool, make_error_code)
815 (make_error_condition, operator==, operator!=, operator<=>): Add
816 nodiscard.
817
818 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
819
820 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
821 namespace.
822 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
823
824 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
825
826 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
827 Do not build the compatibility*-c++0x.cc objects.
828 * src/Makefile.in: Regenerate.
829 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
830 Refuse to build for the versioned namespace.
831 * src/c++11/compatibility-chrono.cc: Likewise.
832 * src/c++11/compatibility-condvar.cc: Likewise.
833 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
834 * src/c++11/chrono.cc (system_clock, steady_clock):
835 Use macros to define in inline namespace _V2, matching the
836 declarations in <system_error>.
837 * src/c++11/system_error.cc (system_category, generic_category):
838 Likewise.
839
840 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
841
842 * doc/xml/manual/prerequisites.xml: Fix attributes for external
843 hyperlink.
844 * doc/html/manual/setup.html: Regenerate.
845
846 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
847
848 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
849 * doc/html/*: Regenerate.
850
851 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
852
853 * doc/xml/manual/intro.xml: Include new chapter.
854 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
855 * doc/xml/manual/status_cxx2023.xml: New file.
856 * doc/html/*: Regenerate.
857
858 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
859
860 * doc/html/manual/status.html: Regenerate.
861 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
862 C++20 bit operations.
863
864 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
865
866 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
867 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
868 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
869
870 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
871
872 * include/std/future (launch): Make operators noexcept.
873
874 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
875
876 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
877 with "__unspecified__".
878 * libsupc++/exception_ptr.h: Improve doxygen docs.
879 (__exception_ptr::swap): Also declare in namespace std.
880
881 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
882
883 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
884 if-constexpr instead of tag dispatching.
885 (rethrow_if_nested) [C++17]: Likewise.
886 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
887 would require RTTI.
888 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
889 New test.
890
891 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
892
893 * doc/doxygen/user.cfg.in (PREDEFINED): Define
894 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
895 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
896 @headerfile.
897 * include/bits/unique_lock.h (unique_lock): Likewise.
898 * include/std/mutex (recursive_mutex, timed_mutex)
899 (recursive_timed_mutex, scoped_lock): Likewise.
900
901 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
902
903 * doc/doxygen/user.cfg.in (PREDEFINED): Define
904 _GLIBCXX23_CONSTEXPR macro.
905 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
906 * include/bits/unique_ptr.h (default_delete): Use @since and
907 @headerfile.
908 * include/std/scoped_allocator: Remove @ingroup from @file
909 block.
910
911 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
912
913 * include/bits/std_thread.h (thread, thread::id): Improve
914 doxygen docs.
915 * include/std/future: Likewise.
916 * include/std/thread (jthread): Likewise.
917
918 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
919
920 * include/bits/ostream_insert.h: Mark helper functions as
921 undocumented by Doxygen.
922 * include/bits/stl_algo.h: Use markdown for formatting and mark
923 helper functions as undocumented.
924 * include/bits/stl_numeric.h: Likewise.
925 * include/bits/stl_pair.h (pair): Add @headerfile.
926
927 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
928
929 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
930 so that Doxygen shows the right base-class for std::allocator.
931 * include/bits/alloc_traits.h: Improve doxygen docs.
932 * include/bits/allocator.h: Likewise.
933 * include/bits/new_allocator.h: Likewise.
934 * include/ext/new_allocator.h: Likewise.
935
936 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
937
938 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
939 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
940 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
941 * include/bits/regex.h: Improve doxygen docs.
942 * include/bits/regex_constants.h: Likewise.
943 * include/bits/regex_error.h: Likewise.
944
945 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
946
947 * include/std/atomic: Suppress doxygen docs for
948 implementation details.
949 * include/bits/atomic_base.h: Likewise.
950 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
951 so that std::atomic is not added to the pointer abstractions
952 group.
953
954 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
955
956 * include/std/system_error: Improve doxygen comments.
957
958 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
959
960 * include/bits/ptr_traits.h: Add some doxygen comments.
961
962 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
963
964 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
965 nothing.
966 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
967 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
968 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
969 for the namespace.
970 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
971 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
972 * include/std/condition_variable (_V2::condition_variable_any):
973 Likewise.
974 * include/std/system_error (_V2::error_category): Likewise.
975
976 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
977
978 * include/bits/mofunc_impl.h: Fix doxygen command.
979
980 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
981
982 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
983 (CLASS_DIAGRAMS): Remove obsolete option.
984
985 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
986
987 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
988 * config/locale/gnu/numeric_members.cc: Likewise.
989 * include/bits/locale_facets_nonio.h: Likewise.
990 * libsupc++/typeinfo: Likewise.
991
992 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
993
994 PR libstdc++/105284
995 * include/std/iosfwd: Add declarations for <spanstream> class
996 templates and typedefs.
997 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
998 (basic_ospanstream, basic_spanstream): Remove default template
999 arguments.
1000 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
1001 declarations.
1002 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
1003 default arguments.
1004
1005 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1006
1007 PR libstdc++/105284
1008 * include/std/iosfwd: Add declarations for <synstream> class
1009 templates and typedefs.
1010 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
1011 Remove default template arguments.
1012 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
1013 * testsuite/27_io/headers/iosfwd/types.cc: New test.
1014
1015 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1016
1017 * include/bits/random.tcc (operator==): Only check
1018 normal_distribution::_M_saved_available once.
1019 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
1020 Check equality after state changes.
1021 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1022 lineno.
1023
1024 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1025
1026 PR libstdc++/105502
1027 * include/bits/random.tcc
1028 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
1029 Update state when __state_avail is false.
1030 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
1031 Check that deserialized object equals serialized one.
1032
1033 2022-05-06 Alexandre Oliva <oliva@adacore.com>
1034
1035 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
1036 for double, long long, and 64-bit long intrinsic types.
1037 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
1038 preexisting long double diagnostic, adjust no-VSX double
1039 diagnostic to cover 64-bit long double as well.
1040
1041 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1042
1043 PR libstdc++/104731
1044 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
1045 Use a trailing char array as storage for dirent::d_name.
1046
1047 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1048
1049 * include/std/stacktrace: Do not include <cxxabi.h>.
1050 (__cxa_demangle): Declare.
1051
1052 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1053
1054 PR libstdc++/99871
1055 * include/bits/specfun.h: Use visibility attribute on namespace,
1056 instead of pragma push/pop.
1057 * libsupc++/compare: Likewise.
1058 * libsupc++/exception: Likewise.
1059 * libsupc++/exception.h: Likewise.
1060 * libsupc++/exception_ptr.h: Likewise.
1061 * libsupc++/initializer_list: Likewise.
1062 * libsupc++/nested_exception.h: Likewise.
1063
1064 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1065
1066 * doc/xml/manual/test.xml: Remove requirement for copyright and
1067 GPL notice in tests.
1068 * doc/html/manual/test.html: Regenerate.
1069
1070 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
1071
1072 * include/experimental/memory_resource [!__cpp_rtti]
1073 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
1074 when RTTI is disabled.
1075 * testsuite/17_intro/freestanding.cc: Require RTTI.
1076 * testsuite/18_support/exception/38732.cc: Likewise.
1077 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
1078 Likewise.
1079 * testsuite/18_support/nested_exception/68139.cc: Likewise.
1080 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
1081 Likewise.
1082 * testsuite/18_support/type_info/103240.cc: Likewise.
1083 * testsuite/18_support/type_info/fundamental.cc: Likewise.
1084 * testsuite/18_support/type_info/hash_code.cc: Likewise.
1085 * testsuite/20_util/any/assign/emplace.cc: Likewise.
1086 * testsuite/20_util/any/cons/in_place.cc: Likewise.
1087 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1088 * testsuite/20_util/any/observers/type.cc: Likewise.
1089 * testsuite/20_util/function/1.cc: Likewise.
1090 * testsuite/20_util/function/2.cc: Likewise.
1091 * testsuite/20_util/function/3.cc: Likewise.
1092 * testsuite/20_util/function/4.cc: Likewise.
1093 * testsuite/20_util/function/5.cc: Likewise.
1094 * testsuite/20_util/function/6.cc: Likewise.
1095 * testsuite/20_util/function/7.cc: Likewise.
1096 * testsuite/20_util/function/8.cc: Likewise.
1097 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1098 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
1099 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1100 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
1101 Likewise.
1102 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
1103 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
1104 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1105 Likewise.
1106 * testsuite/20_util/typeindex/hash.cc: Likewise.
1107 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
1108 * testsuite/20_util/typeindex/name.cc: Likewise.
1109 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1110 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
1111 Likewise.
1112 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
1113 Likewise.
1114 * testsuite/22_locale/locale/13630.cc: Check type without using
1115 RTTI.
1116 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
1117 Require RTTI.
1118 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1119 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
1120 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
1121 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
1122 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1123 * testsuite/experimental/any/observers/type.cc: Likewise.
1124 * testsuite/experimental/memory_resource/resource_adaptor.cc:
1125 Likewise.
1126 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
1127 Define new proc.
1128 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
1129 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
1130 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
1131 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
1132 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
1133 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
1134 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
1135 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
1136 * testsuite/tr2/bases/value.cc: Likewise.
1137 * testsuite/tr2/direct_bases/value.cc: Likewise.
1138 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
1139 types without RTTI.
1140
1141 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
1142
1143 PR libstdc++/104719
1144 * include/std/array (array::size(), array::max_size())
1145 (array::empty(), array::data()): Add always_inline attribute.
1146
1147 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
1148
1149 PR libstdc++/104719
1150 * include/std/array (__array_traits::_S_ref): Remove.
1151 (__array_traits::_S_ptr): Remove.
1152 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
1153 to provide an array-like API.
1154 (array::_AT_Type): Remove public typeef.
1155 (array::operator[], array::at, array::front, array::back): Use
1156 index operator to access _M_elems instead of _S_ref.
1157 (array::data): Use implicit conversion from _M_elems to pointer.
1158 (swap(array&, array&)): Use __enable_if_t helper.
1159 (get<I>): Use index operator to access _M_elems.
1160 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1161 Adjust dg-error line numbers.
1162
1163 2022-05-03 Alexandre Oliva <oliva@adacore.com>
1164
1165 PR c++/105324
1166 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
1167 with conditional for floating-point overloads of from_char.
1168
1169 2022-05-02 Patrick Palka <ppalka@redhat.com>
1170
1171 PR libstdc++/103911
1172 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
1173 two delimeters for the exponent part in the form of a possibly
1174 NULL string of length two. Don't use std::tolower.
1175 (pattern): Adjust calls to find_end_of_float accordingly.
1176
1177 2022-05-02 Patrick Palka <ppalka@redhat.com>
1178
1179 PR libstdc++/105441
1180 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
1181 Also accept 'P' as the start of the exponent.
1182 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
1183
1184 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1185
1186 PR libstdc++/105417
1187 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1188 Regenerate.
1189 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
1190 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
1191 symbols as aliases for corresponding symbols without abi-tag.
1192
1193 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1194
1195 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1196 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1197 Likewise.
1198 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1199 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1200 Likewise.
1201
1202 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1203
1204 PR libstdc++/99290
1205 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
1206 directory_iterator constructor, and check on each iteration.
1207 * src/filesystem/ops.cc (fs::copy): Likewise.
1208 * testsuite/27_io/filesystem/operations/copy.cc: Check for
1209 errors during recursion.
1210 * testsuite/experimental/filesystem/operations/copy.cc:
1211 Likewise.
1212
1213 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
1214
1215 * config/abi/pre/gnu-versioned-namespace.ver: Remove
1216 std::random_device::* pattern.
1217
1218 2022-04-27 Jakub Jelinek <jakub@redhat.com>
1219
1220 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1221 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1222 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1223 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1224 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1225 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1226 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1227 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1228
1229 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
1230
1231 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1232 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1233 (StdAtomicPrinter): New printer.
1234 (build_libstdcxx_dictionary): Register new printer.
1235 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1236 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1237 pointers.
1238
1239 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1240
1241 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1242 constructor for constant initialization from nullptr_t.
1243 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1244 Check for new constructor.
1245
1246 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1247
1248 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1249 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1250 Check std::hash specialization.
1251
1252 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1253
1254 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1255 conditionally.
1256 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1257 Define for C++23.
1258 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1259 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1260 functions.
1261 * include/std/version (__cpp_lib_constexpr_memory): Define new
1262 value for C++23.
1263 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1264 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1265 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1266 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1267 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1268 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1269 New test.
1270
1271 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1272
1273 PR libstdc++/105375
1274 * include/std/future (packaged_task): Add deduction guides.
1275 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1276
1277 2022-04-25 Philipp Fent <fent@in.tum.de>
1278
1279 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1280 Rename as iterator.
1281 (StdInitializerListPrinter): Define new printer.
1282 (build_libstdcxx_dictionary): Register new printer.
1283 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1284 initializer_list.
1285
1286 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1287
1288 PR libstdc++/102994
1289 * include/bits/atomic_base.h (atomic_flag::notify_one,
1290 notify_all): Remove const qualification.
1291 (__atomic_base::notify_one, notify_all): Likewise.
1292 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1293 Likewise.
1294 (atomic::notify_one, notify_all): Likewise.
1295 (atomic<T*>::notify_one, notify_all): Likewise.
1296 (atomic_notify_one, atomic_notify_all): Likewise.
1297 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1298 to account for change in notify_one/notify_all signature.
1299
1300 2022-04-21 Patrick Palka <ppalka@redhat.com>
1301
1302 * include/std/charconv (__from_chars_alnum_to_val_table):
1303 Simplify initialization of __lower/__upper_letters.
1304 (__from_chars_alnum_to_val): Default the template parameter to
1305 false.
1306 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1307 assume the uppercase and lowercase letters are contiguous.
1308 (__floating_from_chars_hex): Likewise.
1309
1310 2022-04-21 Patrick Palka <ppalka@redhat.com>
1311
1312 PR c++/105297
1313 PR c++/105322
1314 * include/std/charconv (__from_chars_alnum_to_val): Make
1315 initializer for __table dependent in an artificial way.
1316
1317 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
1318
1319 PR libstdc++/105324
1320 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1321 Remove assertion.
1322 * testsuite/20_util/from_chars/pr105324.cc: New test.
1323
1324 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1325
1326 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1327 Check correct feature test macro.
1328
1329 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1330
1331 PR libstdc++/93602
1332 * doc/xml/manual/prerequisites.xml: Document libiconv
1333 workarounds.
1334 * doc/html/manual/setup.html: Regenerate.
1335 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1336 * src/Makefile.in: Regenerate.
1337
1338 2022-04-19 Patrick Palka <ppalka@redhat.com>
1339
1340 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1341 define.
1342 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1343 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1344 warnings.
1345 (__floating_to_chars_precision): Likewise.
1346
1347 2022-04-19 Philipp Fent <fent@in.tum.de>
1348
1349 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1350 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1351
1352 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
1353
1354 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1355 * configure: Regenerate.
1356
1357 2022-04-18 Patrick Palka <ppalka@redhat.com>
1358
1359 * include/std/charconv (__from_chars_pow2_base): Manually
1360 unroll the first iteration of the main loop and simplify
1361 accordingly.
1362
1363 2022-04-15 Patrick Palka <ppalka@redhat.com>
1364
1365 PR libstdc++/104858
1366 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1367 __first twice at the start.
1368 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1369
1370 2022-04-15 Patrick Palka <ppalka@redhat.com>
1371
1372 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1373 (__from_chars_alnum_to_val): Define.
1374 (__from_chars_binary): Rename to ...
1375 (__from_chars_pow2_base): ... this. Generalize to handle any
1376 power-of-two base using __from_chars_alnum_to_val.
1377 (__from_chars_digit): Optimize digit recognition to a single
1378 test instead of two tests. Use [[__unlikely___]] attribute.
1379 (__from_chars_alpha_to_num): Remove.
1380 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1381 nested loop for the overflow case. Maintain a lower bound
1382 on the number of available bits in the result and use it to
1383 omit the overflow check.
1384 (from_chars): Adjust appropriately.
1385 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1386 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1387 to recognize a hex digit instead.
1388
1389 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1390
1391 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1392 for RISC-V.
1393 * configure: Regenerate.
1394
1395 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1396
1397 * doc/xml/manual/intro.xml: Fix comment.
1398
1399 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1400
1401 * include/precompiled/stdc++.h: Include <stacktrace> and
1402 <stdatomic.h> for C++23.
1403
1404 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1405
1406 PR libstdc++/105269
1407 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1408 Define.
1409 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1410 Define.
1411 * include/std/optional (__cpp_lib_optional): Define new value
1412 for C++23.
1413 (__cpp_lib_monadic_optional): Remove.
1414 * include/std/version (__cpp_lib_constexpr_vector): Define.
1415 (__cpp_lib_stdatomic_h): Define.
1416 (__cpp_lib_optional): Define new value for C++23.
1417 (__cpp_lib_monadic_optional): Remove.
1418 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1419 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1420 * testsuite/20_util/optional/version.cc: Likewise.
1421 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1422 feature test macro.
1423 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1424 Likewise.
1425 * testsuite/20_util/optional/monadic/version.cc: Removed.
1426 * testsuite/23_containers/vector/requirements/version.cc: New test.
1427 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1428
1429 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1430
1431 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1432 * config.h.in: Regenerate.
1433 * configure: Regenerate.
1434
1435 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1436
1437 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1438 a smaller container if the unused capacity is larger than the
1439 used size.
1440
1441 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1442
1443 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1444 or _Impl::_M_assign to initialize elements in allocated storage.
1445 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1446 _Impl::_M_destroy.
1447 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1448 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1449 function.
1450 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1451 new element using allocator.
1452 (basic_stacktrace::_Impl::_M_clone): New function.
1453 (basic_stacktrace::_Impl::_M_xclone): New function.
1454 (basic_stacktrace::_Impl::_M_assign): New function.
1455
1456 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1457
1458 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1459 Use nothrow new instead of try block for std::allocator.
1460 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1461 std::allocator.
1462
1463 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1464
1465 * include/std/stacktrace (basic_stacktrace::current): Replace
1466 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1467 Check return value of backtrace_simple when max depth given.
1468 (basic_stacktrace::_M_reserve): Remove.
1469 (basic_stacktrace::_S_curr_cb): Remove.
1470 (basic_stacktrace::_M_prepare(size_type)): New function to
1471 reserve initial capacity and return callback.
1472 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1473 and remove redundant zeroing of _M_frames and _M_capacity.
1474 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1475 attribute. Assign _Impl instead of swapping.
1476 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1477
1478 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1479
1480 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1481 Change [[unlikely]] attribute to [[likely]].
1482
1483 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1484
1485 PR libstdc++/105031
1486 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1487 Fix allocator usage in constructors.
1488 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1489 try to reallocate using const allocator.
1490 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1491 if-constexpr with non-constant condition. Do not allocate new
1492 storage if allocator propagates. Do not set _M_size if
1493 allocation fails.
1494 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1495 assertion that non-propagating allocators are equal.
1496 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1497
1498 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1499
1500 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1501 implementation into each overload. Add noinline attribute and
1502 skip current frame.
1503 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1504 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1505 (basic_stacktrace::_Impl::_S_max_size): New function defining
1506 maximum size in terms of allocator and size_type.
1507 (basic_stacktrace::_Impl::_M_allocate): Check against
1508 max_size().
1509 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1510 for non-constexpr checks. Check line number is correct.
1511
1512 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1513
1514 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1515 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1516 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1517 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1518 * testsuite/20_util/stacktrace/version.cc: Moved to...
1519 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1520
1521 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1522
1523 * include/experimental/bits/fs_path.h (path): Define special
1524 members after path::_Cmpt is complete.
1525
1526 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1527
1528 PR libstdc++/105153
1529 * include/std/expected
1530 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1531 * testsuite/20_util/expected/cons.cc: Check constructor.
1532
1533 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1534
1535 PR libstdc++/105154
1536 * include/std/expected (expected<void, E>::swap): Set
1537 _M_has_value to false for objects that previously had a value.
1538 * testsuite/20_util/expected/swap.cc: Fix test to check void
1539 specialization.
1540
1541 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1542
1543 PR libstdc++/105146
1544 * include/std/expected (bad_expected_access): Move constructor
1545 parameter.
1546 * testsuite/20_util/expected/bad.cc: New test.
1547
1548 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
1549
1550 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1551 test.
1552
1553 2022-04-02 Jakub Jelinek <jakub@redhat.com>
1554
1555 PR libstdc++/105128
1556 * include/std/source_location (std::source_location::__impl): Move
1557 definition before using __builtin_ret_type.
1558
1559 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1560
1561 * include/std/utility (unreachable): Define for C++23.
1562 * include/std/version (__cpp_lib_unreachable): Define.
1563 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1564 arguments. Handle only the function being given.
1565 * testsuite/20_util/unreachable/1.cc: New test.
1566 * testsuite/20_util/unreachable/version.cc: New test.
1567
1568 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1569
1570 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1571 incorrect noexcept from declaration.
1572 * include/experimental/bits/fs_path.h (path::begin, path::end):
1573 Add noexcept to declarations, to match definitions.
1574
1575 2022-04-01 Timm Bäder <tbaeder@redhat.com>
1576
1577 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1578 * include/experimental/bits/fs_ops.h: Likewise.
1579
1580 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
1581
1582 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1583
1584 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1585
1586 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1587 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1588 * testsuite/18_support/unexpected_handler.cc: Likewise.
1589
1590 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1591
1592 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1593 static data members for _Fp_fmt enumerators.
1594
1595 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1596
1597 * include/std/version (__cpp_lib_variant): Fix conditions to
1598 match <variant>.
1599 (__cpp_lib_expected): Fix condition to match <expected>.
1600
1601 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
1602
1603 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1604 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1605 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1606 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1607 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1608 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1609 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1610 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1611
1612 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
1613
1614 * doc/doxygen/user.cfg.in: Add new header.
1615 * include/Makefile.am: Likewise.
1616 * include/Makefile.in: Regenerate.
1617 * include/precompiled/stdc++.h: Add new header.
1618 * include/std/version (__cpp_lib_expected): Define.
1619 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1620 (unexpected_handler, set_unexpected): Do not declare for C++23.
1621 * include/std/expected: New file.
1622 * testsuite/20_util/expected/assign.cc: New test.
1623 * testsuite/20_util/expected/cons.cc: New test.
1624 * testsuite/20_util/expected/illformed_neg.cc: New test.
1625 * testsuite/20_util/expected/observers.cc: New test.
1626 * testsuite/20_util/expected/requirements.cc: New test.
1627 * testsuite/20_util/expected/swap.cc: New test.
1628 * testsuite/20_util/expected/synopsis.cc: New test.
1629 * testsuite/20_util/expected/unexpected.cc: New test.
1630 * testsuite/20_util/expected/version.cc: New test.
1631
1632 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
1633
1634 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1635 comments.
1636
1637 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1638
1639 PR libstdc++/105027
1640 * include/std/bit (bit_cast): Add constraints.
1641 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1642
1643 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1644
1645 * include/std/version [!_GLIBCXX_HOSTED]
1646 (__cpp_lib_hardware_interference_size): Define for freestanding.
1647 (__cpp_lib_bit_cast): Likewise.
1648 (__cpp_lib_is_layout_compatible): Likewise.
1649 (__cpp_lib_is_pointer_interconvertible): Likewise.
1650 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1651 freestanding.
1652 (__cpp_lib_invoke_r): Likewise.
1653 (__cpp_lib_ios_noreplace): Likewise.
1654 (__cpp_lib_monadic_optional): Likewise.
1655 (__cpp_lib_move_only_function): Likewise.
1656 (__cpp_lib_spanstream): Likewise.
1657 (__cpp_lib_stacktrace): Likewise.
1658 (__cpp_lib_string_contains): Likewise.
1659 (__cpp_lib_string_resize_and_overwrite): Likewise.
1660 (__cpp_lib_to_underlying): Likewise.
1661
1662 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1663
1664 PR libstdc++/105021
1665 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1666 <bits/atomic_wait.h> for freestanding.
1667
1668 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
1669
1670 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1671 Conditionalize call to fesetround.
1672
1673 2022-03-21 Jakub Jelinek <jakub@redhat.com>
1674
1675 PR libstdc++/104990
1676 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1677 isn't overloaded if __clang__ is defined.
1678
1679 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1680
1681 PR libstdc++/104242
1682 * include/std/any (any(T&&)): Revert change to constraints.
1683 * testsuite/20_util/any/cons/104242.cc: New test.
1684
1685 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1686
1687 PR libstdc++/92546
1688 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1689 <bits/stl_pair.h>.
1690 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1691 (__pstl::__internal::__except_handler): Use std::__terminate
1692 instead of std::terminate.
1693 * src/c++17/fs_path.cc: Include <array>.
1694 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1695 <functional>.
1696 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1697 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1698 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1699 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1700 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1701 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1702 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1703 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1704 <iterator>.
1705 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1706 <functional>.
1707 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1708 Likewise.
1709 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1710 Likewise.
1711 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1712 Likewise.
1713 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1714 Include <array>.
1715 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1716 <functional>.
1717 * testsuite/25_algorithms/max/constrained.cc: Likewise.
1718 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1719 * testsuite/25_algorithms/min/constrained.cc: Likewise.
1720 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1721 * testsuite/25_algorithms/minmax_element/constrained.cc:
1722 Likewise.
1723 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1724 * testsuite/25_algorithms/move/93872.cc: Likewise.
1725 * testsuite/25_algorithms/move_backward/93872.cc: Include
1726 <iterator>.
1727 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1728 <functional>.
1729 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1730 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1731 Likewise.
1732 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1733 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1734 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1735 * testsuite/25_algorithms/set_difference/constrained.cc:
1736 Likewise.
1737 * testsuite/25_algorithms/set_intersection/constexpr.cc:
1738 Likewise.
1739 * testsuite/25_algorithms/set_intersection/constrained.cc:
1740 Likewise.
1741 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1742 Likewise.
1743 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1744 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1745 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1746 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1747 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1748 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1749 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1750 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1751 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1752 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1753 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1754 * testsuite/std/ranges/adaptors/split.cc: Likewise.
1755
1756 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1757
1758 PR libstdc++/92546
1759 * include/bits/fs_path.h (path::make_preferred): Use
1760 handwritten loop instead of std::replace.
1761
1762 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1763
1764 PR middle-end/104966
1765 * include/bits/locale_facets_nonio.tcc
1766 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1767 make all string copies before any stores to *this.
1768
1769 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1770
1771 * testsuite/util/testsuite_character.h: Fix comment.
1772
1773 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1774
1775 PR libstdc++/103407
1776 * config/abi/pre/gnu.ver: Make version for std::from_chars
1777 depend on HAVE_USELOCALE macro.
1778 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1779 std::from_chars for floating-point types as undesignated if
1780 not found in the baseline symbols file.
1781
1782 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1783
1784 * include/std/charconv (__cpp_lib_to_chars): Only define when
1785 both from_chars and to_chars are supported for floating-point
1786 types.
1787 (from_chars, to_chars): Adjust preprocessor conditions guarding
1788 declarations.
1789 * include/std/version (__cpp_lib_to_chars): Adjust condition to
1790 match <charconv> definition.
1791 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1792 function template.
1793 (from_chars): Simplify preprocessor checks and use
1794 from_chars_strtod when appropriate.
1795
1796 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
1797
1798 PR libstdc++/104875
1799 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1800 hold octets that will be left-shifted.
1801
1802 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1803
1804 PR libstdc++/104870
1805 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1806 before using fast_float.
1807
1808 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
1809
1810 PR libstdc++/104866
1811 * include/bits/this_thread_sleep.h: Fix order of #endif and
1812 closing brace of namespace.
1813
1814 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1815
1816 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1817 Handle NaN.
1818
1819 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1820
1821 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1822 <=> comparison.
1823
1824 2022-03-09 Patrick Palka <ppalka@redhat.com>
1825
1826 PR libstdc++/104859
1827 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1828 Be explicit when narrowing the shifted effective_mantissa,
1829 since it may have an integer-class type.
1830
1831 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
1832
1833 * include/bits/uses_allocator_args.h: Remove incorrect copyright
1834 notice.
1835
1836 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
1837
1838 PR libstdc++/104807
1839 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1840 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1841 (__is_constant_evaluated): Add visibility pragma.
1842
1843 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1844
1845 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1846 include.
1847
1848 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
1849
1850 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1851 attribute.
1852 (__terminate): Likewise.
1853
1854 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
1855
1856 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1857 inside #if condition.
1858
1859 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1860
1861 PR libstdc++/104748
1862 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1863 constexpr test.
1864
1865 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1866
1867 * testsuite/17_intro/names.cc (func): Undef on AIX.
1868
1869 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1870
1871 PR libstdc++/96526
1872 * libsupc++/compare (strong_order): Add missing support for
1873 floating-point types.
1874 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1875 New test.
1876
1877 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
1878
1879 PR middle-end/103984
1880 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1881 default member initializer.
1882
1883 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
1884
1885 PR libstdc++/104602
1886 * include/std/source_location (source_location::current): Use
1887 deduced type of __builtin_source_location().
1888
1889 2022-02-22 Patrick Palka <ppalka@redhat.com>
1890
1891 * include/bits/ranges_base.h (__detail::__is_initializer_list):
1892 Define.
1893 (viewable_range): Adjust as per P2415R2.
1894 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1895 * include/std/ranges (owning_view): Define as per P2415R2.
1896 (enable_borrowed_range<owning_view>): Likewise.
1897 (views::__detail::__can_subrange): Replace with ...
1898 (views::__detail::__can_owning_view): ... this.
1899 (views::_All::_S_noexcept): Sync with operator().
1900 (views::_All::operator()): Use owning_view instead of subrange
1901 as per P2415R2.
1902 * include/std/version (__cpp_lib_ranges): Adjust value.
1903 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1904 views::all uses owning_view instead of subrange.
1905 (test08): New test.
1906 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1907 now that rvalue non-view non-borrowed ranges are viewable.
1908 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1909
1910 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1911
1912 PR libstdc++/104559
1913 * doc/xml/manual/evolution.xml: Document deprecation.
1914 * doc/html/manual/api.html: Regenerate.
1915 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1916 Remove default argument.
1917 (insert(const_iterator)): New overload with deprecated attribute.
1918 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1919 New test.
1920
1921 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1922
1923 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1924 code that call cat->name() on std::error_category objects.
1925 Identify known categories by symbol name and use a hardcoded
1926 name. Print error code values as enumerators where appopriate.
1927 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1928 name of custom category. Check io_errc and future_errc errors.
1929
1930 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
1931
1932 PR libstdc++/104542
1933 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1934 (uninitialized_construct_using_allocator): Add constexpr.
1935 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1936 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1937
1938 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1939
1940 PR libstdc++/100912
1941 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1942 namespace for IEEE128 long double mode.
1943 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1944 version and export __gnu_cxx_ieee128::__convert_from_v.
1945 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1946 Make __ibm128 overload use snprintf directly
1947 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1948 Remove stable IEEE128/LDBL versions.
1949
1950 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1951
1952 PR libstdc++/103891
1953 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1954 Remove.
1955 * include/std/variant: Check feature test macros instead.
1956 * include/std/version: Likewise.
1957
1958 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1959
1960 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1961 Fix typo.
1962
1963 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1964
1965 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1966 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1967
1968 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1969
1970 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1971 selector.
1972
1973 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1974
1975 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1976 Ignore -Walloc-larger-than warning.
1977 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1978 Likewise.
1979 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1980 to avoid linker error for __atomic_is_lock_free.
1981
1982 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
1983
1984 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1985 __waiter_base::_S_do_spin_v): Change memory order from relaxed
1986 to acquire.
1987
1988 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1989
1990 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1991 using-declaration.
1992 (atomic_fetch_xor_explicit): Likewise.
1993 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1994 arithmetic and logical operations for atomic_int.
1995
1996 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1997
1998 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1999 when <dirent.h> is not available.
2000 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
2001
2002 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
2003
2004 PR libstdc++/104442
2005 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
2006 loop inside do loop so that threads failing the wait, reload
2007 _M_ver.
2008
2009 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2010
2011 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
2012 parameter to _Dir_base&&.
2013 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
2014 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
2015 parameter to _Dir_base&&.
2016
2017 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2018
2019 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
2020 checking for CAS on correct word size.
2021
2022 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2023
2024 * testsuite/experimental/filesystem/operations/create_directories.cc:
2025 Adjust expected results for Windows.
2026
2027 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2028
2029 PR libstdc++/104161
2030 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
2031 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
2032 instead of checking for errno values indicating a directory.
2033 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
2034 logic to non-throwing overload.
2035 (fs::remove_all(const path&, error_code&)): Add comments.
2036 * src/filesystem/ops-common.h: Likewise.
2037
2038 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2039
2040 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
2041 type to use portable posix::DIR alias.
2042
2043 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2044
2045 * include/c_compatibility/stdatomic.h [__clang__]: Use
2046 #include_next <stdatomic.h>.
2047
2048 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2049
2050 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
2051 noexcept.
2052 (fs::create_directories): Likewise.
2053 (fs::remove_all): Likewise.
2054 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
2055 (fs::create_directories): Likewise.
2056 (fs::remove_all): Likewise.
2057
2058 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2059
2060 PR libstdc++/104161
2061 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
2062 and unlinkat.
2063 * config.h.in: Regenerate.
2064 * configure: Regenerate.
2065 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
2066 remove_all overloads as friends.
2067 (recursive_directory_iterator::__erase): Declare new member
2068 function.
2069 * include/bits/fs_fwd.h (remove, remove_all): Declare.
2070 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
2071 constructor. Pass file descriptor argument to base constructor.
2072 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
2073 (_Dir::unlink, _Dir::rmdir): Define new member functions.
2074 (directory_iterator): Pass filename_only argument to _Dir
2075 constructor.
2076 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2077 parameters to take a _Dir rvalue instead of creating one.
2078 (_Dir_stack::orig): Add data member for storing original path.
2079 (_Dir_stack::report_error): Define new member function.
2080 (__directory_iterator_nofollow): Move here from dir-common.h and
2081 fix value to be a power of two.
2082 (__directory_iterator_filename_only): Define new constant.
2083 (recursive_directory_iterator): Construct _Dir object and move
2084 into _M_dirs stack. Pass skip_permission_denied argument to first
2085 advance call.
2086 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2087 (recursive_directory_iterator::__erase): Define new member
2088 function.
2089 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
2090 (fs::remove_all): Use new recursive_directory_iterator::__erase
2091 member function.
2092 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
2093 constructor and use openat to implement nofollow semantics.
2094 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
2095 Define new member functions.
2096 (__directory_iterator_nofollow): Move to fs_dir.cc.
2097 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
2098 base constructor.
2099 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
2100 functions.
2101 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2102 parameters to take a _Dir rvalue instead of creating one.
2103 (recursive_directory_iterator): Check for new nofollow option.
2104 Construct _Dir object and move into _M_dirs stack. Pass
2105 skip_permission_denied argument to first advance call.
2106 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2107 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
2108
2109 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2110
2111 * include/bits/allocator.h: Qualify std::allocator_traits in
2112 deprecated warnings.
2113 * libsupc++/exception (uncaught_exception): Add suggestion to
2114 deprecated warning.
2115
2116 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2117
2118 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
2119 Add [[maybe_unused]] attribute.
2120 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
2121 Likewise.
2122
2123 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2124
2125 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
2126 custom comparison function for multiset.
2127 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
2128 comparison function for set.
2129
2130 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2131
2132 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2133 Change member function to data member of function pointer type.
2134
2135 2022-02-02 Martin Sebor <msebor@redhat.com>
2136
2137 PR libstdc++/101831
2138 * include/std/array (begin): Declare const member function attribute
2139 const.
2140 (end, rbegin, rend, size, max_size, empty, data): Same.
2141 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
2142 * testsuite/23_containers/array/capacity/max_size.cc: Same.
2143 * testsuite/23_containers/array/capacity/size.cc: Same.
2144 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
2145
2146 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2147
2148 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2149 autoconf macro to check whether d_type is present.
2150 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2151 Likewise.
2152
2153 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2154
2155 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
2156 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2157 Check follow_directory_symlink option.
2158 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2159 Likewise.
2160
2161 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2162
2163 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
2164 Reset state to past-the-end iterator on error.
2165 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
2166 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
2167 it might get reset.
2168 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
2169 for the TS implementation.
2170 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
2171 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
2172
2173 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2174
2175 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
2176
2177 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2178
2179 PR libstdc++/104301
2180 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
2181 for stdio_pure and stdio_posix options.
2182 * configure: Regenerate.
2183
2184 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
2185
2186 * include/bits/atomic_wait.h: Change memory order from
2187 Acquire/Release with relaxed loads to SeqCst+Release for
2188 accesses to the waiter's count.
2189
2190 2022-01-31 Martin Liska <mliska@suse.cz>
2191
2192 * acinclude.m4: Detect *_ld_is_mold and use it.
2193 * configure: Regenerate.
2194
2195 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
2196
2197 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
2198 simulator targets.
2199 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2200
2201 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2202
2203 PR libstdc++/100516
2204 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
2205 Add __builtin_unreachable to loop.
2206 * testsuite/23_containers/deque/100516.cc: New test.
2207
2208 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2209
2210 * include/bits/ranges_base.h (ranges::advance): Avoid signed
2211 overflow. Do nothing if already equal to desired result.
2212 * testsuite/24_iterators/range_operations/advance_overflow.cc:
2213 New test.
2214
2215 2022-01-27 Martin Liska <mliska@suse.cz>
2216
2217 PR libstdc++/104259
2218 * acinclude.m4: Fix typo.
2219 * configure: Regenerate.
2220
2221 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2222
2223 PR libstdc++/104019
2224 * include/bits/istream.tcc (basic_istream::sentry): Add braces
2225 around try-block.
2226 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2227 Add pragmas to disable bogus warnings from PR 61596.
2228
2229 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2230
2231 PR libstdc++/104217
2232 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2233 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
2234 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
2235
2236 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2237
2238 PR libstdc++/104161
2239 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2240 fdopendir.
2241 * config.h.in: Regenerate.
2242 * configure: Regenerate.
2243 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2244 and pass it to base class constructor.
2245 (directory_iterator): Pass nofollow flag to _Dir constructor.
2246 (fs::recursive_directory_iterator::increment): Likewise.
2247 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2248 directory_iterator constructor. Move error check outside loop.
2249 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2250 constructor and when it's set use ::open with O_NOFOLLOW and
2251 O_DIRECTORY.
2252 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2253 and pass it to base class constructor.
2254 (directory_iterator): Pass nofollow flag to _Dir constructor.
2255 (fs::recursive_directory_iterator::increment): Likewise.
2256 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2257 directory_iterator constructor. Move error check outside loop.
2258
2259 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2260
2261 PR libstdc++/104032
2262 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2263 mem-initializer for _M_buf.
2264 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2265 member access.
2266 * testsuite/27_io/spanstream/2.cc: New test.
2267
2268 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2269
2270 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2271 Define macro for case where std::from_chars is implemented in
2272 terms of strtod, strtof or strtold.
2273 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2274 (from_chars_impl, make_result, reserve_string): Do not define
2275 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2276 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2277 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2278 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2279 is binary64.
2280
2281 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2282
2283 PR libstdc++/104174
2284 * include/bits/hashtable_policy.h (_Map_base): Add partial
2285 specialization for maps with const key types.
2286 * testsuite/23_containers/unordered_map/104174.cc: New test.
2287
2288 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2289
2290 PR libstdc++/104019
2291 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2292 Set members to zero without type punning.
2293
2294 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2295
2296 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2297
2298 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2299
2300 PR libstdc++/87193
2301 PR libstdc++/104019
2302 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2303 Define as type long.
2304 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2305 Likewise.
2306 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2307 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2308 (__cpp_lib_chrono_udls): Likewise.
2309 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2310 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2311 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2312 Likewise.
2313 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2314 Likewise.
2315 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2316 (__cpp_lib_sample): Likewise.
2317 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2318 Likewise.
2319 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2320 Likewise.
2321 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2322 Likewise.
2323 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2324 Likewise.
2325 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2326 Likewise.
2327 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2328 Likewise.
2329 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2330 Likewise.
2331 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2332 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2333 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2334 Likewise.
2335 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2336 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2337 * include/std/functional (__cpp_lib_not_fn): Likewise.
2338 (__cpp_lib_boyer_moore_searcher): Likewise.
2339 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2340 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2341 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2342 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2343 * include/std/tuple (__cpp_lib_apply): Likewise.
2344 (__cpp_lib_make_from_tuple): Likewise.
2345 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2346 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2347 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2348 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2349 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2350 (__cpp_lib_has_unique_object_representations)
2351 (__cpp_lib_is_aggregate): Likewise.
2352 * include/std/version: Likewise.
2353 * libsupc++/new (__cpp_lib_launder): Likewise.
2354
2355 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2356
2357 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2358 condition for C++17 definition.
2359
2360 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2361
2362 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2363 Add constexpr.
2364 (_Sp_atomic::_M_ptr): Add default member-initializer.
2365 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2366 Check constant initialization.
2367 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2368
2369 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2370
2371 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2372 equivalent attribute for Clang.
2373 * src/c++11/future.cc (__constinit): Likewise.
2374 * src/c++11/system_error.cc (__constinit): Likewise.
2375 * src/c++17/memory_resource.cc (__constinit): Likewise.
2376
2377 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2378
2379 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2380 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2381
2382 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2383
2384 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2385 from default flags.
2386 * configure: Regenerate.
2387
2388 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2389
2390 PR libstdc++/104123
2391 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2392 <stddef.h>.
2393
2394 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2395
2396 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2397 linker search paths.
2398 * src/Makefile.am: Fix src/debug/libbacktrace build.
2399 * src/Makefile.in: Regenerate.
2400 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2401 variable. Use symlinks for the source files.
2402 * src/libbacktrace/Makefile.in: Regenerate.
2403
2404 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
2405
2406 * include/experimental/bits/simd.h (__floating_point_flags): Do
2407 not rely on math_errhandling to expand to a constant expression.
2408
2409 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2410
2411 * doc/xml/manual/evolution.xml: Document deprecations.
2412 * doc/xml/manual/status_cxx2017.xml: Update status.
2413 * doc/html/*: Regenerate.
2414
2415 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2416
2417 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2418 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2419
2420 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2421
2422 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2423 function.
2424
2425 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2426
2427 PR libstdc++/104101
2428 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2429 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2430
2431 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2432
2433 PR libstdc++/104099
2434 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2435 define for C++23.
2436 (operator=(nullptr_t)): Likewise.
2437 * include/bits/cow_string.h: Likewise.
2438 * include/std/string_view (basic_string_view(nullptr_t)):
2439 Likewise.
2440 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2441 expected error. Add examples that become ill-formed in C++23.
2442 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2443 Adjust expected errors.
2444 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2445 Likewise.
2446
2447 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2448
2449 PR libstdc++/104098
2450 * include/bits/stl_iterator.h (reverse_iterator): Check
2451 __cpp_lib_concepts instead of __cplusplus.
2452
2453 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2454
2455 PR libstdc++/101124
2456 * include/bits/stl_pair.h (pair): Adjust constraints on
2457 deprecated constructors accepting literal zero as null pointer
2458 constant. Improve wording of deprecated attribute.
2459 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2460 constructors do not cause ambiguities for copyable types.
2461
2462 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2463
2464 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2465 non-deprecated alternative.
2466
2467 2022-01-18 Tom Honermann <tom@honermann.net>
2468
2469 * acinclude.m4: Define config macros if uchar.h provides
2470 c8rtomb() and mbrtoc8().
2471 * config.h.in: Regenerate.
2472 * configure: Regenerate.
2473 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2474 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2475 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2476 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2477 New test.
2478 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2479 New test.
2480
2481 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2482
2483 * include/Makefile.am: Install new header.
2484 * include/Makefile.in: Regenerate.
2485 * include/c_compatibility/stdatomic.h: New file.
2486 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2487
2488 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2489
2490 PR libstdc++/104080
2491 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2492 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2493 Define in terms of __BYTE_ORDER__.
2494
2495 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2496
2497 PR libstdc++/104080
2498 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2499 * src/c++17/fast_float/fast_float.h (round): Use explicit
2500 template argument list for std::min.
2501
2502 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2503
2504 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2505 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2506 upcoming release.
2507 * doc/html/manual/status.html: Regenerate.
2508
2509 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2510
2511 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2512 comments.
2513 * configure: Regenerate.
2514
2515 2022-01-17 Patrick Palka <ppalka@redhat.com>
2516
2517 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2518 Conditionally define, and use it to conditionally include
2519 fast_float.
2520 (from_chars): Use fast_float for float and double when
2521 USE_LIB_FAST_FLOAT.
2522
2523 2022-01-17 Patrick Palka <ppalka@redhat.com>
2524
2525 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2526 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2527 case of over/underflow, return errc::result_out_of_range and don't
2528 modify 'value'.
2529
2530 2022-01-17 Patrick Palka <ppalka@redhat.com>
2531
2532 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2533 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2534
2535 2022-01-17 Patrick Palka <ppalka@redhat.com>
2536
2537 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2538 * src/c++17/fast_float/MERGE: New file.
2539 * src/c++17/fast_float/README.md: New file, copied from the
2540 fast_float repository.
2541 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2542 of the fast_float library.
2543
2544 2022-01-17 Patrick Palka <ppalka@redhat.com>
2545
2546 * src/c++17/floating_from_chars.cc: Include <bit>.
2547 (ascii_to_hexit, starts_with_ci): Conditionally define.
2548 (__floating_from_chars_hex): Conditionally define.
2549 (from_chars): Use __floating_from_chars_hex for
2550 chars_format::hex parsing of binary32/64 float/double.
2551 (testsuite/20_util/from_chars/7.cc): New test.
2552 * testsuite/20_util/from_chars/7.cc: New file.
2553
2554 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2555
2556 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2557 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2558 * include/Makefile.am: Add new header.
2559 * include/Makefile.in: Regenerate.
2560 * include/std/stacktrace: New header.
2561 * include/std/version (__cpp_lib_stacktrace): Define.
2562 * Makefile.in: Regenerate.
2563 * config.h.in: Regenerate.
2564 * configure: Regenerate.
2565 * doc/Makefile.in: Regenerate.
2566 * libsupc++/Makefile.in: Regenerate.
2567 * po/Makefile.in: Regenerate.
2568 * python/Makefile.in: Regenerate.
2569 * src/Makefile.am: Regenerate.
2570 * src/Makefile.in: Regenerate.
2571 * src/c++11/Makefile.in: Regenerate.
2572 * src/c++17/Makefile.in: Regenerate.
2573 * src/c++20/Makefile.in: Regenerate.
2574 * src/c++98/Makefile.in: Regenerate.
2575 * src/filesystem/Makefile.in: Regenerate.
2576 * testsuite/Makefile.in: Regenerate.
2577 * src/libbacktrace/Makefile.am: New file.
2578 * src/libbacktrace/Makefile.in: New file.
2579 * src/libbacktrace/backtrace-rename.h: New file.
2580 * src/libbacktrace/backtrace-supported.h.in: New file.
2581 * src/libbacktrace/config.h.in: New file.
2582 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2583 New proc.
2584 * testsuite/20_util/stacktrace/entry.cc: New test.
2585 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2586 * testsuite/20_util/stacktrace/version.cc: New test.
2587
2588 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2589
2590 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2591 names.
2592 * doc/html/manual/status.html: Regenerate.
2593
2594 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2595
2596 PR libstdc++/103650
2597 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2598 * include/Makefile.in: Regenerate.
2599 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2600
2601 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
2602
2603 * include/experimental/bits/simd.h (__floating_point_flags): Do
2604 not rely on the presence of the math_errhandling macro.
2605
2606 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2607
2608 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2609 to qualified-id for dependent type.
2610
2611 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2612
2613 * doc/xml/manual/status_cxx2020.xml: Update.
2614 * doc/html/manual/status.html: Regenerate.
2615
2616 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2617 Thomas Rodgers <trodgers@redhat.com>
2618
2619 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2620 New macro.
2621 (_Sp_atomic): New class template.
2622 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2623 specializations.
2624 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2625 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2626 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2627 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2628 test.
2629 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2630
2631 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
2632
2633 * include/experimental/bits/simd.h: Move feature detection bools
2634 and add __have_avx512bitalg, __have_avx512vbmi2,
2635 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2636 __have_avx512vnni, __have_avx512vpopcntdq.
2637 (__detail::__machine_flags): New function which returns a unique
2638 uint64 depending on relevant -m and -f flags.
2639 (__detail::__odr_helper): New type alias for either an anonymous
2640 type or a type specialized with the __machine_flags number.
2641 (_SimdIntOperators): Change template parameters from _Impl to
2642 _Tp, _Abi because _Impl now has an __odr_helper parameter which
2643 may be _OdrEnforcer from the anonymous namespace, which makes
2644 for a bad base class.
2645 (many): Either add __odr_helper template parameter or mark as
2646 always_inline.
2647 * include/experimental/bits/simd_detail.h: Add defines for
2648 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2649 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2650 * include/experimental/bits/simd_builtin.h: Add __odr_helper
2651 template parameter or mark as always_inline.
2652 * include/experimental/bits/simd_fixed_size.h: Ditto.
2653 * include/experimental/bits/simd_math.h: Ditto.
2654 * include/experimental/bits/simd_scalar.h: Ditto.
2655 * include/experimental/bits/simd_neon.h: Add __odr_helper
2656 template parameter.
2657 * include/experimental/bits/simd_ppc.h: Ditto.
2658 * include/experimental/bits/simd_x86.h: Ditto.
2659
2660 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
2661
2662 * testsuite/22_locale/numpunct/members/char/3.cc:
2663 Require pt_PT locale instead of nl_NL.
2664 (test02): Use pt_PT locale instead of nl_NL.
2665
2666 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2667
2668 PR libstdc++/91260
2669 PR libstdc++/91383
2670 PR libstdc++/95065
2671 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2672 attribute.
2673 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2674 Disable deprecated warnings for base classes.
2675 (_Reference_wrapper_base): Likewise.
2676 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2677 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2678 * include/bits/stl_function.h (unary_function, binary_function):
2679 Add deprecated attribute.
2680 (unary_negate, not1, binary_negate, not2, ptr_fun)
2681 (pointer_to_unary_function, pointer_to_binary_function)
2682 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2683 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2684 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2685 attributes.
2686 * include/bits/stl_iterator.h: Disable deprecated warnings for
2687 std::iterator base classes.
2688 * include/bits/stl_iterator_base_types.h (iterator): Add
2689 deprecated attribute.
2690 * include/bits/stl_map.h (map::value_compare): Disable
2691 deprecated warnings for base class.
2692 * include/bits/stl_multimap.h (multimap::value_compare):
2693 Likewise.
2694 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2695 Add deprecated attribute.
2696 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2697 * include/bits/stream_iterator.h: Disable deprecated warnings.
2698 * include/bits/streambuf_iterator.h: Likewise.
2699 * include/ext/bitmap_allocator.h: Remove unary_function base
2700 classes.
2701 * include/ext/functional: Disable deprecated warnings.
2702 * include/ext/rope: Likewise.
2703 * include/ext/throw_allocator.h: Likewise.
2704 * include/std/type_traits (result_of): Add deprecated attribute.
2705 * include/tr1/functional: Disable deprecated warnings.
2706 * include/tr1/functional_hash.h: Likewise.
2707 * testsuite/20_util/function_objects/binders/1.cc: Add
2708 -Wno-disable-deprecations.
2709 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2710 * testsuite/20_util/function_objects/constexpr.cc: Add
2711 dg-warning.
2712 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2713 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2714 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2715 Likewise.
2716 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2717 Likewise.
2718 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2719 Likewise.
2720 * testsuite/20_util/reference_wrapper/24803.cc:
2721 Likewise.
2722 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2723 C++20 and check for absence of nested types.
2724 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2725 std::binary_function base class.
2726 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2727 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2728 std::iterator base class.
2729 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2730 Likewise.
2731 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2732 Likewise.
2733 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2734 Likewise.
2735 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2736 Likewise.
2737 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2738 Likewise.
2739 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2740 Likewise.
2741 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2742 Likewise.
2743 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2744 Likewise.
2745 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2746 Likewise.
2747 * testsuite/25_algorithms/copy/34595.cc:
2748 Likewise.
2749 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2750 base class.
2751 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2752 Disable deprecated warnings.
2753 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2754 Likewise.
2755 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2756 Likewise.
2757 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2758 Likewise.
2759 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2760 Likewise.
2761 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2762 Likewise.
2763 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2764 Likewise.
2765 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2766 Likewise.
2767 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2768 Likewise.
2769 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2770 Likewise.
2771 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2772 Likewise.
2773 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2774 Likewise.
2775 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2776 Likewise.
2777 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2778 Likewise.
2779 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2780 Likewise.
2781 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2782 Likewise.
2783 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2784 Likewise.
2785 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2786 Likewise.
2787 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2788 Likewise.
2789 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2790 Likewise.
2791 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2792 Likewise.
2793 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2794 Likewise.
2795 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2796 Likewise.
2797 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2798 Likewise.
2799 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2800 Likewise.
2801 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2802 Likewise.
2803 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2804 Likewise.
2805 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2806 Likewise.
2807 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2808 Likewise.
2809 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2810 Likewise.
2811 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2812 Likewise.
2813 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2814 Likewise.
2815 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2816 Likewise.
2817 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2818 Likewise.
2819 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2820 Likewise.
2821 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2822 Likewise.
2823 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2824 Likewise.
2825 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2826 Likewise.
2827 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2828 Likewise.
2829 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2830 Likewise.
2831 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2832 Likewise.
2833 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2834 Likewise.
2835 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2836 Likewise.
2837 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2838 Likewise.
2839 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2840 Likewise.
2841 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2842 Likewise.
2843 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2844 Likewise.
2845 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2846 Likewise.
2847 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2848 dg-warning.
2849 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2850 Likewise.
2851 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2852 Likewise.
2853 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2854 Disable deprecated warnings.
2855 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2856 Likewise.
2857 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2858 std::unary_function base classes.
2859 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2860 Remove std::iterator base classes.
2861
2862 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2863
2864 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2865 Correct type of macro value.
2866 (shared_ptr): Add additional friend declarations.
2867 (make_shared, allocate_shared): Constrain existing overloads and
2868 remove static_assert.
2869 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2870 New macro.
2871 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2872 specialization for use with make_shared_for_overwrite.
2873 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2874 (_Sp_counted_array_base): New class template.
2875 (_Sp_counted_array): New class template.
2876 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2877 New constructor for allocating shared arrays.
2878 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2879 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2880 type.
2881 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2882 (__cpp_lib_smart_ptr_for_overwrite): New macro.
2883 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2884 expected errors.
2885 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2886 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2887 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2888 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2889 feature test macro. Test non-trivial default-initialization.
2890
2891 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2892
2893 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2894 Also cast away cv-qualifiers when converting pointer to void.
2895 * testsuite/20_util/allocator/void.cc: Test construct function
2896 with cv-qualified types.
2897
2898 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2899
2900 PR libstdc++/103992
2901 * include/bits/stl_iterator.h (common_iterator): Use
2902 std::construct_at instead of placement new.
2903 * testsuite/24_iterators/common_iterator/1.cc: Check copy
2904 construction is usable in constant expressions.
2905
2906 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2907
2908 * doc/xml/manual/status_cxx2011.xml: Document new tokens
2909 accepted by std::random_device constructor.
2910 * doc/html/manual/status.html: Regenerate.
2911
2912 2022-01-12 Patrick Palka <ppalka@redhat.com>
2913
2914 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2915 directive.
2916
2917 2022-01-12 Patrick Palka <ppalka@redhat.com>
2918
2919 PR libstdc++/103955
2920 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2921 Track the excess precision separately from the effective
2922 precision. Avoid overflow in bounds check by splitting it into
2923 two checks.
2924 (__floating_to_chars_precision): Avoid overflow in bounds checks
2925 similarly.
2926 * testsuite/20_util/to_chars/103955.cc: New test.
2927
2928 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2929
2930 PR libstdc++/103726
2931 * include/Makefile.am: Install <source_location> for
2932 freestanding.
2933 * include/Makefile.in: Regenerate.
2934 * include/std/version (__cpp_lib_source_location): Define for
2935 freestanding.
2936
2937 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2938
2939 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2940 Add neoxcept (LWG 3593).
2941
2942 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2943
2944 * include/std/ranges (ranges::__detail::__box): Add constexpr to
2945 assignment operators (LWG 3572).
2946 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2947 view that uses copyable-box.
2948
2949 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2950
2951 PR libstdc++/103726
2952 * include/Makefile.am: Install <coroutine> for freestanding.
2953 * include/Makefile.in: Regenerate.
2954 * include/std/coroutine: Adjust headers and preprocessor
2955 conditions.
2956 (__coroutine_traits_impl): Use concepts when available.
2957 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2958
2959 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2960
2961 * include/std/ostream (operator<<(basic_ostream&, charT)):
2962 Use unformatted input if no padding is needed.
2963 (operator<<(basic_ostream<char>&, char)): Likewise.
2964
2965 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2966
2967 PR libstdc++/103891
2968 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2969 Define.
2970 * include/std/variant (__cpp_lib_variant): Only define C++20
2971 value when the compiler is known to support conditionally
2972 trivial destructors.
2973 * include/std/version (__cpp_lib_variant): Likewise.
2974
2975 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2976
2977 * include/bits/stl_iterator.h (common_iterator): Add constexpr
2978 to all member functions (LWG 3574).
2979 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2980 tests as constant expressions.
2981 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2982
2983 2022-01-10 Jakub Jelinek <jakub@redhat.com>
2984
2985 PR libstdc++/77760
2986 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2987 (time_get::_M_extract_via_format): Declare new method with
2988 __time_get_state& as an extra argument.
2989 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2990 __state argument, set various fields in it while parsing. Handle %j,
2991 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2992 for %p immediately. Add a wrapper around the method without the
2993 __state argument for backwards compatibility.
2994 (_M_extract_num): Remove all __len == 4 special cases.
2995 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2996 initialize __state, pass it to _M_extract_via_format and finalize it
2997 at the end.
2998 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2999 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
3000 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
3001 version, don't call do_get but call _M_extract_via_format instead to
3002 pass around state.
3003 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
3004 with extra __time_get_state and __time_get_state::_M_finalize_state.
3005 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
3006 day_of_the_year): New functions in anon namespace.
3007 (mon_yday): New var in anon namespace.
3008 (__time_get_state::_M_finalize_state): Define.
3009 * testsuite/22_locale/time_get/get/char/4.cc: New test.
3010 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
3011 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
3012 as year 197AD instead of error.
3013 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
3014 year 2001 instead of error.
3015 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
3016 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
3017 197 as year 197AD instead of error.
3018 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
3019 1 as year 2001 instead of error.
3020 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
3021
3022 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3023
3024 PR libstdc++/103866
3025 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
3026 nothing for freestanding builds.
3027 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
3028 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
3029 with --without-headers. Do not use GCC_HEADER_STDINT for
3030 freestanding builds.
3031 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
3032 for freestanding builds.
3033 * configure: Regenerate.
3034 * Makefile.in: Regenerate.
3035 * doc/Makefile.in: Regenerate.
3036 * include/Makefile.in: Regenerate.
3037 * libsupc++/Makefile.in: Regenerate.
3038 * po/Makefile.in: Regenerate.
3039 * python/Makefile.in: Regenerate.
3040 * src/Makefile.in: Regenerate.
3041 * src/c++11/Makefile.in: Regenerate.
3042 * src/c++17/Makefile.in: Regenerate.
3043 * src/c++20/Makefile.in: Regenerate.
3044 * src/c++98/Makefile.in: Regenerate.
3045 * src/filesystem/Makefile.in: Regenerate.
3046 * testsuite/Makefile.in: Regenerate.
3047
3048 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3049
3050 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
3051 Add dg-timeout-factor directive.
3052 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
3053 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
3054 * testsuite/28_regex/match_results/102667.cc: Likewise.
3055
3056 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3057
3058 * doc/xml/manual/using.xml: Update documentation around default
3059 -std option.
3060 * doc/html/*: Regenerate.
3061
3062 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3063
3064 PR libstdc++/100017
3065 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
3066 * src/c++17/Makefile.in: Regenerate.
3067
3068 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
3069
3070 * testsuite/18_support/type_info/constexpr.cc: Add explicit
3071 -fdelete-null-pointer-checks option.
3072
3073 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
3074 Jonathan Wakely <jwakely@redhat.com>
3075
3076 PR libstdc++/103853
3077 * include/bits/forward_list.tcc (forward_list::merge): Check for
3078 self-merge.
3079 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
3080
3081 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3082
3083 * include/bits/regex.h (basic_regex, match_results): Qualify
3084 name in friend declaration, to work around Clang bug.
3085
3086 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3087
3088 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
3089
3090 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3091
3092 PR libstdc++/103911
3093 * include/std/charconv (__from_chars_alpha_to_num): Return
3094 char instead of unsigned char. Change invalid return value to
3095 127 instead of using numeric trait.
3096 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
3097 Change type of variable to char.
3098
3099 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
3100
3101 PR libstdc++/68303
3102 * include/bits/hashtable_policy.h
3103 (_Hashtable_hash_traits<_Hash>): New.
3104 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
3105 (_Hashtable_base<>::_M_key_equals): New.
3106 (_Hashtable_base<>::_M_equals): Use latter.
3107 (_Hashtable_base<>::_M_key_equals_tr): New.
3108 (_Hashtable_base<>::_M_equals_tr): Use latter.
3109 * include/bits/hashtable.h
3110 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
3111 (_Hashtable<>::find): Loop through elements to look for key if size is lower
3112 than __small_size_threshold().
3113 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
3114 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
3115 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
3116 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
3117 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
3118 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
3119 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
3120 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
3121 * testsuite/util/testsuite_performance.h
3122 (report_performance): Use 9 width to display memory.
3123 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
3124 New performance test case.
3125
3126 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3127
3128 PR libstdc++/103919
3129 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
3130 Relax constraints on string_view parameter.
3131 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
3132 Likewise.
3133 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
3134
3135 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3136
3137 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
3138 ARM EABI.
3139 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
3140 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
3141 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
3142 is emitted.
3143 (type_info::__equal): Define alias symbol.
3144 * libsupc++/typeinfo (type_info::before): Combine different
3145 implementations into one.
3146 (type_info::operator==): Likewise. Use address equality for
3147 constant evaluation. Call __equal for targets that require the
3148 definition to be non-inline.
3149 * testsuite/18_support/type_info/constexpr.cc: New test.
3150
3151 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3152
3153 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
3154 class and virtual functions as 'final'.
3155 (io_category_instance): Use constinit union to make the object
3156 immortal.
3157 * src/c++11/future.cc (future_error_category): Define class and
3158 virtual functions as 'final'.
3159 (future_category_instance): Use constinit union.
3160
3161 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3162
3163 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
3164 versioned namespace from the type name that is printed.
3165
3166 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3167
3168 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
3169 printer for std::regex NFA states.
3170
3171 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3172
3173 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
3174 placeholders in comments.
3175 * testsuite/23_containers/forward_list/operations/2.cc:
3176 Likewise.
3177 * testsuite/23_containers/forward_list/operations/3.cc:
3178 Likewise.
3179 * testsuite/23_containers/forward_list/operations/4.cc:
3180 Likewise.
3181 * testsuite/23_containers/forward_list/operations/5.cc:
3182 Likewise.
3183 * testsuite/23_containers/forward_list/operations/6.cc:
3184 Likewise.
3185 * testsuite/23_containers/forward_list/operations/7.cc:
3186 Likewise.
3187
3188 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3189
3190 PR libstdc++/103848
3191 * include/bits/stl_deque.h (operator-): Do not use 0 as null
3192 pointer constant.
3193
3194 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3195
3196 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
3197 Use std::_Construct for construct.
3198
3199 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3200
3201 PR libstdc++/103877
3202 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
3203 * doc/html/faq.html: Regenerate.
3204
3205 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3206
3207 * include/bits/regex.h (__regex_algo_impl): Change __policy and
3208 __match_mode template parameters to be function parameters.
3209 (regex_match, regex_search): Pass policy and match mode as
3210 function arguments.
3211 * include/bits/regex.tcc (__regex_algo_impl): Change template
3212 parameters to function parameters.
3213 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3214 'if constexpr' for conditions using template parameters.
3215 (_RegexTranslator): Likewise.
3216 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3217 Likewise.
3218 * testsuite/util/testsuite_regex.h (regex_match_debug)
3219 (regex_search_debug): Move template arguments to function
3220 arguments.
3221
3222 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3223
3224 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3225 results even if the match failed.
3226
3227 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3228
3229 * include/bits/regex_compiler.tcc: Adjust all calls to
3230 __throw_regex_error.
3231 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
3232 attribute.
3233 * include/bits/regex_scanner.tcc: Likewise.
3234 * src/c++11/regex.cc (desc): New helper function.
3235 (regex_error::regex_error(error_type)): Use desc to get a string
3236 corresponding to the error code.
3237
3238 \f
3239 Copyright (C) 2022 Free Software Foundation, Inc.
3240
3241 Copying and distribution of this file, with or without modification,
3242 are permitted in any medium without royalty provided the copyright
3243 notice and this notice are preserved.