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