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