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