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