]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
e235ded9c92c2661d25b8c157f10288eee682913
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/random.tcc (operator==): Only check
4 normal_distribution::_M_saved_available once.
5 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
6 Check equality after state changes.
7 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
8 lineno.
9
10 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
11
12 PR libstdc++/105502
13 * include/bits/random.tcc
14 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
15 Update state when __state_avail is false.
16 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
17 Check that deserialized object equals serialized one.
18
19 2022-05-06 Alexandre Oliva <oliva@adacore.com>
20
21 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
22 for double, long long, and 64-bit long intrinsic types.
23 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
24 preexisting long double diagnostic, adjust no-VSX double
25 diagnostic to cover 64-bit long double as well.
26
27 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
28
29 PR libstdc++/104731
30 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
31 Use a trailing char array as storage for dirent::d_name.
32
33 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
34
35 * include/std/stacktrace: Do not include <cxxabi.h>.
36 (__cxa_demangle): Declare.
37
38 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
39
40 PR libstdc++/99871
41 * include/bits/specfun.h: Use visibility attribute on namespace,
42 instead of pragma push/pop.
43 * libsupc++/compare: Likewise.
44 * libsupc++/exception: Likewise.
45 * libsupc++/exception.h: Likewise.
46 * libsupc++/exception_ptr.h: Likewise.
47 * libsupc++/initializer_list: Likewise.
48 * libsupc++/nested_exception.h: Likewise.
49
50 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
51
52 * doc/xml/manual/test.xml: Remove requirement for copyright and
53 GPL notice in tests.
54 * doc/html/manual/test.html: Regenerate.
55
56 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
57
58 * include/experimental/memory_resource [!__cpp_rtti]
59 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
60 when RTTI is disabled.
61 * testsuite/17_intro/freestanding.cc: Require RTTI.
62 * testsuite/18_support/exception/38732.cc: Likewise.
63 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
64 Likewise.
65 * testsuite/18_support/nested_exception/68139.cc: Likewise.
66 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
67 Likewise.
68 * testsuite/18_support/type_info/103240.cc: Likewise.
69 * testsuite/18_support/type_info/fundamental.cc: Likewise.
70 * testsuite/18_support/type_info/hash_code.cc: Likewise.
71 * testsuite/20_util/any/assign/emplace.cc: Likewise.
72 * testsuite/20_util/any/cons/in_place.cc: Likewise.
73 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
74 * testsuite/20_util/any/observers/type.cc: Likewise.
75 * testsuite/20_util/function/1.cc: Likewise.
76 * testsuite/20_util/function/2.cc: Likewise.
77 * testsuite/20_util/function/3.cc: Likewise.
78 * testsuite/20_util/function/4.cc: Likewise.
79 * testsuite/20_util/function/5.cc: Likewise.
80 * testsuite/20_util/function/6.cc: Likewise.
81 * testsuite/20_util/function/7.cc: Likewise.
82 * testsuite/20_util/function/8.cc: Likewise.
83 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
84 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
85 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
86 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
87 Likewise.
88 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
89 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
90 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
91 Likewise.
92 * testsuite/20_util/typeindex/hash.cc: Likewise.
93 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
94 * testsuite/20_util/typeindex/name.cc: Likewise.
95 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
96 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
97 Likewise.
98 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
99 Likewise.
100 * testsuite/22_locale/locale/13630.cc: Check type without using
101 RTTI.
102 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
103 Require RTTI.
104 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
105 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
106 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
107 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
108 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
109 * testsuite/experimental/any/observers/type.cc: Likewise.
110 * testsuite/experimental/memory_resource/resource_adaptor.cc:
111 Likewise.
112 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
113 Define new proc.
114 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
115 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
116 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
117 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
118 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
119 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
120 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
121 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
122 * testsuite/tr2/bases/value.cc: Likewise.
123 * testsuite/tr2/direct_bases/value.cc: Likewise.
124 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
125 types without RTTI.
126
127 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
128
129 PR libstdc++/104719
130 * include/std/array (array::size(), array::max_size())
131 (array::empty(), array::data()): Add always_inline attribute.
132
133 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
134
135 PR libstdc++/104719
136 * include/std/array (__array_traits::_S_ref): Remove.
137 (__array_traits::_S_ptr): Remove.
138 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
139 to provide an array-like API.
140 (array::_AT_Type): Remove public typeef.
141 (array::operator[], array::at, array::front, array::back): Use
142 index operator to access _M_elems instead of _S_ref.
143 (array::data): Use implicit conversion from _M_elems to pointer.
144 (swap(array&, array&)): Use __enable_if_t helper.
145 (get<I>): Use index operator to access _M_elems.
146 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
147 Adjust dg-error line numbers.
148
149 2022-05-03 Alexandre Oliva <oliva@adacore.com>
150
151 PR c++/105324
152 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
153 with conditional for floating-point overloads of from_char.
154
155 2022-05-02 Patrick Palka <ppalka@redhat.com>
156
157 PR libstdc++/103911
158 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
159 two delimeters for the exponent part in the form of a possibly
160 NULL string of length two. Don't use std::tolower.
161 (pattern): Adjust calls to find_end_of_float accordingly.
162
163 2022-05-02 Patrick Palka <ppalka@redhat.com>
164
165 PR libstdc++/105441
166 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
167 Also accept 'P' as the start of the exponent.
168 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
169
170 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
171
172 PR libstdc++/105417
173 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
174 Regenerate.
175 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
176 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
177 symbols as aliases for corresponding symbols without abi-tag.
178
179 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
180
181 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
182 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
183 Likewise.
184 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
185 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
186 Likewise.
187
188 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
189
190 PR libstdc++/99290
191 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
192 directory_iterator constructor, and check on each iteration.
193 * src/filesystem/ops.cc (fs::copy): Likewise.
194 * testsuite/27_io/filesystem/operations/copy.cc: Check for
195 errors during recursion.
196 * testsuite/experimental/filesystem/operations/copy.cc:
197 Likewise.
198
199 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
200
201 * config/abi/pre/gnu-versioned-namespace.ver: Remove
202 std::random_device::* pattern.
203
204 2022-04-27 Jakub Jelinek <jakub@redhat.com>
205
206 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
207 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
208 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
209 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
210 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
211 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
212 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
213 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
214
215 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
216
217 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
218 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
219 (StdAtomicPrinter): New printer.
220 (build_libstdcxx_dictionary): Register new printer.
221 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
222 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
223 pointers.
224
225 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
226
227 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
228 constructor for constant initialization from nullptr_t.
229 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
230 Check for new constructor.
231
232 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
233
234 * include/bits/fs_path.h (hash<filesystem::path>): Define.
235 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
236 Check std::hash specialization.
237
238 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
239
240 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
241 conditionally.
242 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
243 Define for C++23.
244 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
245 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
246 functions.
247 * include/std/version (__cpp_lib_constexpr_memory): Define new
248 value for C++23.
249 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
250 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
251 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
252 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
253 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
254 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
255 New test.
256
257 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
258
259 PR libstdc++/105375
260 * include/std/future (packaged_task): Add deduction guides.
261 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
262
263 2022-04-25 Philipp Fent <fent@in.tum.de>
264
265 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
266 Rename as iterator.
267 (StdInitializerListPrinter): Define new printer.
268 (build_libstdcxx_dictionary): Register new printer.
269 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
270 initializer_list.
271
272 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
273
274 PR libstdc++/102994
275 * include/bits/atomic_base.h (atomic_flag::notify_one,
276 notify_all): Remove const qualification.
277 (__atomic_base::notify_one, notify_all): Likewise.
278 * include/std/atomic (atomic<bool>::notify_one, notify_all):
279 Likewise.
280 (atomic::notify_one, notify_all): Likewise.
281 (atomic<T*>::notify_one, notify_all): Likewise.
282 (atomic_notify_one, atomic_notify_all): Likewise.
283 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
284 to account for change in notify_one/notify_all signature.
285
286 2022-04-21 Patrick Palka <ppalka@redhat.com>
287
288 * include/std/charconv (__from_chars_alnum_to_val_table):
289 Simplify initialization of __lower/__upper_letters.
290 (__from_chars_alnum_to_val): Default the template parameter to
291 false.
292 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
293 assume the uppercase and lowercase letters are contiguous.
294 (__floating_from_chars_hex): Likewise.
295
296 2022-04-21 Patrick Palka <ppalka@redhat.com>
297
298 PR c++/105297
299 PR c++/105322
300 * include/std/charconv (__from_chars_alnum_to_val): Make
301 initializer for __table dependent in an artificial way.
302
303 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
304
305 PR libstdc++/105324
306 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
307 Remove assertion.
308 * testsuite/20_util/from_chars/pr105324.cc: New test.
309
310 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
311
312 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
313 Check correct feature test macro.
314
315 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
316
317 PR libstdc++/93602
318 * doc/xml/manual/prerequisites.xml: Document libiconv
319 workarounds.
320 * doc/html/manual/setup.html: Regenerate.
321 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
322 * src/Makefile.in: Regenerate.
323
324 2022-04-19 Patrick Palka <ppalka@redhat.com>
325
326 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
327 define.
328 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
329 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
330 warnings.
331 (__floating_to_chars_precision): Likewise.
332
333 2022-04-19 Philipp Fent <fent@in.tum.de>
334
335 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
336 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
337
338 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
339
340 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
341 * configure: Regenerate.
342
343 2022-04-18 Patrick Palka <ppalka@redhat.com>
344
345 * include/std/charconv (__from_chars_pow2_base): Manually
346 unroll the first iteration of the main loop and simplify
347 accordingly.
348
349 2022-04-15 Patrick Palka <ppalka@redhat.com>
350
351 PR libstdc++/104858
352 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
353 __first twice at the start.
354 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
355
356 2022-04-15 Patrick Palka <ppalka@redhat.com>
357
358 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
359 (__from_chars_alnum_to_val): Define.
360 (__from_chars_binary): Rename to ...
361 (__from_chars_pow2_base): ... this. Generalize to handle any
362 power-of-two base using __from_chars_alnum_to_val.
363 (__from_chars_digit): Optimize digit recognition to a single
364 test instead of two tests. Use [[__unlikely___]] attribute.
365 (__from_chars_alpha_to_num): Remove.
366 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
367 nested loop for the overflow case. Maintain a lower bound
368 on the number of available bits in the result and use it to
369 omit the overflow check.
370 (from_chars): Adjust appropriately.
371 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
372 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
373 to recognize a hex digit instead.
374
375 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
376
377 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
378 for RISC-V.
379 * configure: Regenerate.
380
381 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
382
383 * doc/xml/manual/intro.xml: Fix comment.
384
385 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
386
387 * include/precompiled/stdc++.h: Include <stacktrace> and
388 <stdatomic.h> for C++23.
389
390 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
391
392 PR libstdc++/105269
393 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
394 Define.
395 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
396 Define.
397 * include/std/optional (__cpp_lib_optional): Define new value
398 for C++23.
399 (__cpp_lib_monadic_optional): Remove.
400 * include/std/version (__cpp_lib_constexpr_vector): Define.
401 (__cpp_lib_stdatomic_h): Define.
402 (__cpp_lib_optional): Define new value for C++23.
403 (__cpp_lib_monadic_optional): Remove.
404 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
405 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
406 * testsuite/20_util/optional/version.cc: Likewise.
407 * testsuite/23_containers/vector/cons/constexpr.cc: Check
408 feature test macro.
409 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
410 Likewise.
411 * testsuite/20_util/optional/monadic/version.cc: Removed.
412 * testsuite/23_containers/vector/requirements/version.cc: New test.
413 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
414
415 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
416
417 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
418 * config.h.in: Regenerate.
419 * configure: Regenerate.
420
421 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
422
423 * include/std/stacktrace (basic_stacktrace::current): Reallocate
424 a smaller container if the unused capacity is larger than the
425 used size.
426
427 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
428
429 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
430 or _Impl::_M_assign to initialize elements in allocated storage.
431 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
432 _Impl::_M_destroy.
433 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
434 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
435 function.
436 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
437 new element using allocator.
438 (basic_stacktrace::_Impl::_M_clone): New function.
439 (basic_stacktrace::_Impl::_M_xclone): New function.
440 (basic_stacktrace::_Impl::_M_assign): New function.
441
442 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
443
444 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
445 Use nothrow new instead of try block for std::allocator.
446 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
447 std::allocator.
448
449 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
450
451 * include/std/stacktrace (basic_stacktrace::current): Replace
452 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
453 Check return value of backtrace_simple when max depth given.
454 (basic_stacktrace::_M_reserve): Remove.
455 (basic_stacktrace::_S_curr_cb): Remove.
456 (basic_stacktrace::_M_prepare(size_type)): New function to
457 reserve initial capacity and return callback.
458 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
459 and remove redundant zeroing of _M_frames and _M_capacity.
460 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
461 attribute. Assign _Impl instead of swapping.
462 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
463
464 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
465
466 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
467 Change [[unlikely]] attribute to [[likely]].
468
469 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
470
471 PR libstdc++/105031
472 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
473 Fix allocator usage in constructors.
474 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
475 try to reallocate using const allocator.
476 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
477 if-constexpr with non-constant condition. Do not allocate new
478 storage if allocator propagates. Do not set _M_size if
479 allocation fails.
480 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
481 assertion that non-propagating allocators are equal.
482 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
483
484 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
485
486 * include/std/stacktrace (basic_stacktrace::current): Duplicate
487 implementation into each overload. Add noinline attribute and
488 skip current frame.
489 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
490 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
491 (basic_stacktrace::_Impl::_S_max_size): New function defining
492 maximum size in terms of allocator and size_type.
493 (basic_stacktrace::_Impl::_M_allocate): Check against
494 max_size().
495 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
496 for non-constexpr checks. Check line number is correct.
497
498 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
499
500 * testsuite/20_util/stacktrace/entry.cc: Moved to...
501 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
502 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
503 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
504 * testsuite/20_util/stacktrace/version.cc: Moved to...
505 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
506
507 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
508
509 * include/experimental/bits/fs_path.h (path): Define special
510 members after path::_Cmpt is complete.
511
512 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
513
514 PR libstdc++/105153
515 * include/std/expected
516 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
517 * testsuite/20_util/expected/cons.cc: Check constructor.
518
519 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
520
521 PR libstdc++/105154
522 * include/std/expected (expected<void, E>::swap): Set
523 _M_has_value to false for objects that previously had a value.
524 * testsuite/20_util/expected/swap.cc: Fix test to check void
525 specialization.
526
527 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
528
529 PR libstdc++/105146
530 * include/std/expected (bad_expected_access): Move constructor
531 parameter.
532 * testsuite/20_util/expected/bad.cc: New test.
533
534 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
535
536 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
537 test.
538
539 2022-04-02 Jakub Jelinek <jakub@redhat.com>
540
541 PR libstdc++/105128
542 * include/std/source_location (std::source_location::__impl): Move
543 definition before using __builtin_ret_type.
544
545 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
546
547 * include/std/utility (unreachable): Define for C++23.
548 * include/std/version (__cpp_lib_unreachable): Define.
549 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
550 arguments. Handle only the function being given.
551 * testsuite/20_util/unreachable/1.cc: New test.
552 * testsuite/20_util/unreachable/version.cc: New test.
553
554 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
555
556 * include/experimental/bits/fs_fwd.h (copy_file): Remove
557 incorrect noexcept from declaration.
558 * include/experimental/bits/fs_path.h (path::begin, path::end):
559 Add noexcept to declarations, to match definitions.
560
561 2022-04-01 Timm Bäder <tbaeder@redhat.com>
562
563 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
564 * include/experimental/bits/fs_ops.h: Likewise.
565
566 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
567
568 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
569
570 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
571
572 * testsuite/18_support/exception/38732.cc: Disable for C++23.
573 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
574 * testsuite/18_support/unexpected_handler.cc: Likewise.
575
576 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
577
578 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
579 static data members for _Fp_fmt enumerators.
580
581 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
582
583 * include/std/version (__cpp_lib_variant): Fix conditions to
584 match <variant>.
585 (__cpp_lib_expected): Fix condition to match <expected>.
586
587 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
588
589 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
590 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
591 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
592 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
593 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
594 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
595 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
596 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
597
598 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
599
600 * doc/doxygen/user.cfg.in: Add new header.
601 * include/Makefile.am: Likewise.
602 * include/Makefile.in: Regenerate.
603 * include/precompiled/stdc++.h: Add new header.
604 * include/std/version (__cpp_lib_expected): Define.
605 * libsupc++/exception [__cplusplus > 202002] (unexpected)
606 (unexpected_handler, set_unexpected): Do not declare for C++23.
607 * include/std/expected: New file.
608 * testsuite/20_util/expected/assign.cc: New test.
609 * testsuite/20_util/expected/cons.cc: New test.
610 * testsuite/20_util/expected/illformed_neg.cc: New test.
611 * testsuite/20_util/expected/observers.cc: New test.
612 * testsuite/20_util/expected/requirements.cc: New test.
613 * testsuite/20_util/expected/swap.cc: New test.
614 * testsuite/20_util/expected/synopsis.cc: New test.
615 * testsuite/20_util/expected/unexpected.cc: New test.
616 * testsuite/20_util/expected/version.cc: New test.
617
618 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
619
620 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
621 comments.
622
623 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
624
625 PR libstdc++/105027
626 * include/std/bit (bit_cast): Add constraints.
627 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
628
629 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
630
631 * include/std/version [!_GLIBCXX_HOSTED]
632 (__cpp_lib_hardware_interference_size): Define for freestanding.
633 (__cpp_lib_bit_cast): Likewise.
634 (__cpp_lib_is_layout_compatible): Likewise.
635 (__cpp_lib_is_pointer_interconvertible): Likewise.
636 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
637 freestanding.
638 (__cpp_lib_invoke_r): Likewise.
639 (__cpp_lib_ios_noreplace): Likewise.
640 (__cpp_lib_monadic_optional): Likewise.
641 (__cpp_lib_move_only_function): Likewise.
642 (__cpp_lib_spanstream): Likewise.
643 (__cpp_lib_stacktrace): Likewise.
644 (__cpp_lib_string_contains): Likewise.
645 (__cpp_lib_string_resize_and_overwrite): Likewise.
646 (__cpp_lib_to_underlying): Likewise.
647
648 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
649
650 PR libstdc++/105021
651 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
652 <bits/atomic_wait.h> for freestanding.
653
654 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
655
656 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
657 Conditionalize call to fesetround.
658
659 2022-03-21 Jakub Jelinek <jakub@redhat.com>
660
661 PR libstdc++/104990
662 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
663 isn't overloaded if __clang__ is defined.
664
665 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
666
667 PR libstdc++/104242
668 * include/std/any (any(T&&)): Revert change to constraints.
669 * testsuite/20_util/any/cons/104242.cc: New test.
670
671 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
672
673 PR libstdc++/92546
674 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
675 <bits/stl_pair.h>.
676 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
677 (__pstl::__internal::__except_handler): Use std::__terminate
678 instead of std::terminate.
679 * src/c++17/fs_path.cc: Include <array>.
680 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
681 <functional>.
682 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
683 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
684 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
685 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
686 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
687 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
688 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
689 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
690 <iterator>.
691 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
692 <functional>.
693 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
694 Likewise.
695 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
696 Likewise.
697 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
698 Likewise.
699 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
700 Include <array>.
701 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
702 <functional>.
703 * testsuite/25_algorithms/max/constrained.cc: Likewise.
704 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
705 * testsuite/25_algorithms/min/constrained.cc: Likewise.
706 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
707 * testsuite/25_algorithms/minmax_element/constrained.cc:
708 Likewise.
709 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
710 * testsuite/25_algorithms/move/93872.cc: Likewise.
711 * testsuite/25_algorithms/move_backward/93872.cc: Include
712 <iterator>.
713 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
714 <functional>.
715 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
716 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
717 Likewise.
718 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
719 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
720 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
721 * testsuite/25_algorithms/set_difference/constrained.cc:
722 Likewise.
723 * testsuite/25_algorithms/set_intersection/constexpr.cc:
724 Likewise.
725 * testsuite/25_algorithms/set_intersection/constrained.cc:
726 Likewise.
727 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
728 Likewise.
729 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
730 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
731 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
732 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
733 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
734 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
735 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
736 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
737 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
738 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
739 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
740 * testsuite/std/ranges/adaptors/split.cc: Likewise.
741
742 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
743
744 PR libstdc++/92546
745 * include/bits/fs_path.h (path::make_preferred): Use
746 handwritten loop instead of std::replace.
747
748 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
749
750 PR middle-end/104966
751 * include/bits/locale_facets_nonio.tcc
752 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
753 make all string copies before any stores to *this.
754
755 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
756
757 * testsuite/util/testsuite_character.h: Fix comment.
758
759 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
760
761 PR libstdc++/103407
762 * config/abi/pre/gnu.ver: Make version for std::from_chars
763 depend on HAVE_USELOCALE macro.
764 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
765 std::from_chars for floating-point types as undesignated if
766 not found in the baseline symbols file.
767
768 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
769
770 * include/std/charconv (__cpp_lib_to_chars): Only define when
771 both from_chars and to_chars are supported for floating-point
772 types.
773 (from_chars, to_chars): Adjust preprocessor conditions guarding
774 declarations.
775 * include/std/version (__cpp_lib_to_chars): Adjust condition to
776 match <charconv> definition.
777 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
778 function template.
779 (from_chars): Simplify preprocessor checks and use
780 from_chars_strtod when appropriate.
781
782 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
783
784 PR libstdc++/104875
785 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
786 hold octets that will be left-shifted.
787
788 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
789
790 PR libstdc++/104870
791 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
792 before using fast_float.
793
794 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
795
796 PR libstdc++/104866
797 * include/bits/this_thread_sleep.h: Fix order of #endif and
798 closing brace of namespace.
799
800 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
801
802 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
803 Handle NaN.
804
805 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
806
807 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
808 <=> comparison.
809
810 2022-03-09 Patrick Palka <ppalka@redhat.com>
811
812 PR libstdc++/104859
813 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
814 Be explicit when narrowing the shifted effective_mantissa,
815 since it may have an integer-class type.
816
817 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
818
819 * include/bits/uses_allocator_args.h: Remove incorrect copyright
820 notice.
821
822 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
823
824 PR libstdc++/104807
825 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
826 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
827 (__is_constant_evaluated): Add visibility pragma.
828
829 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
830
831 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
832 include.
833
834 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
835
836 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
837 attribute.
838 (__terminate): Likewise.
839
840 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
841
842 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
843 inside #if condition.
844
845 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
846
847 PR libstdc++/104748
848 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
849 constexpr test.
850
851 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
852
853 * testsuite/17_intro/names.cc (func): Undef on AIX.
854
855 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
856
857 PR libstdc++/96526
858 * libsupc++/compare (strong_order): Add missing support for
859 floating-point types.
860 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
861 New test.
862
863 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
864
865 PR middle-end/103984
866 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
867 default member initializer.
868
869 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
870
871 PR libstdc++/104602
872 * include/std/source_location (source_location::current): Use
873 deduced type of __builtin_source_location().
874
875 2022-02-22 Patrick Palka <ppalka@redhat.com>
876
877 * include/bits/ranges_base.h (__detail::__is_initializer_list):
878 Define.
879 (viewable_range): Adjust as per P2415R2.
880 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
881 * include/std/ranges (owning_view): Define as per P2415R2.
882 (enable_borrowed_range<owning_view>): Likewise.
883 (views::__detail::__can_subrange): Replace with ...
884 (views::__detail::__can_owning_view): ... this.
885 (views::_All::_S_noexcept): Sync with operator().
886 (views::_All::operator()): Use owning_view instead of subrange
887 as per P2415R2.
888 * include/std/version (__cpp_lib_ranges): Adjust value.
889 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
890 views::all uses owning_view instead of subrange.
891 (test08): New test.
892 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
893 now that rvalue non-view non-borrowed ranges are viewable.
894 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
895
896 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
897
898 PR libstdc++/104559
899 * doc/xml/manual/evolution.xml: Document deprecation.
900 * doc/html/manual/api.html: Regenerate.
901 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
902 Remove default argument.
903 (insert(const_iterator)): New overload with deprecated attribute.
904 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
905 New test.
906
907 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
908
909 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
910 code that call cat->name() on std::error_category objects.
911 Identify known categories by symbol name and use a hardcoded
912 name. Print error code values as enumerators where appopriate.
913 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
914 name of custom category. Check io_errc and future_errc errors.
915
916 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
917
918 PR libstdc++/104542
919 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
920 (uninitialized_construct_using_allocator): Add constexpr.
921 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
922 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
923
924 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
925
926 PR libstdc++/100912
927 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
928 namespace for IEEE128 long double mode.
929 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
930 version and export __gnu_cxx_ieee128::__convert_from_v.
931 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
932 Make __ibm128 overload use snprintf directly
933 * testsuite/util/testsuite_abi.cc: Add new symbol version.
934 Remove stable IEEE128/LDBL versions.
935
936 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
937
938 PR libstdc++/103891
939 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
940 Remove.
941 * include/std/variant: Check feature test macros instead.
942 * include/std/version: Likewise.
943
944 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
945
946 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
947 Fix typo.
948
949 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
950
951 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
952 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
953
954 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
955
956 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
957 selector.
958
959 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
960
961 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
962 Ignore -Walloc-larger-than warning.
963 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
964 Likewise.
965 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
966 to avoid linker error for __atomic_is_lock_free.
967
968 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
969
970 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
971 __waiter_base::_S_do_spin_v): Change memory order from relaxed
972 to acquire.
973
974 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
975
976 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
977 using-declaration.
978 (atomic_fetch_xor_explicit): Likewise.
979 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
980 arithmetic and logical operations for atomic_int.
981
982 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
983
984 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
985 when <dirent.h> is not available.
986 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
987
988 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
989
990 PR libstdc++/104442
991 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
992 loop inside do loop so that threads failing the wait, reload
993 _M_ver.
994
995 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
996
997 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
998 parameter to _Dir_base&&.
999 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1000 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1001 parameter to _Dir_base&&.
1002
1003 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1004
1005 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1006 checking for CAS on correct word size.
1007
1008 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1009
1010 * testsuite/experimental/filesystem/operations/create_directories.cc:
1011 Adjust expected results for Windows.
1012
1013 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1014
1015 PR libstdc++/104161
1016 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1017 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1018 instead of checking for errno values indicating a directory.
1019 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1020 logic to non-throwing overload.
1021 (fs::remove_all(const path&, error_code&)): Add comments.
1022 * src/filesystem/ops-common.h: Likewise.
1023
1024 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1025
1026 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1027 type to use portable posix::DIR alias.
1028
1029 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1030
1031 * include/c_compatibility/stdatomic.h [__clang__]: Use
1032 #include_next <stdatomic.h>.
1033
1034 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1035
1036 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1037 noexcept.
1038 (fs::create_directories): Likewise.
1039 (fs::remove_all): Likewise.
1040 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1041 (fs::create_directories): Likewise.
1042 (fs::remove_all): Likewise.
1043
1044 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1045
1046 PR libstdc++/104161
1047 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1048 and unlinkat.
1049 * config.h.in: Regenerate.
1050 * configure: Regenerate.
1051 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1052 remove_all overloads as friends.
1053 (recursive_directory_iterator::__erase): Declare new member
1054 function.
1055 * include/bits/fs_fwd.h (remove, remove_all): Declare.
1056 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1057 constructor. Pass file descriptor argument to base constructor.
1058 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1059 (_Dir::unlink, _Dir::rmdir): Define new member functions.
1060 (directory_iterator): Pass filename_only argument to _Dir
1061 constructor.
1062 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1063 parameters to take a _Dir rvalue instead of creating one.
1064 (_Dir_stack::orig): Add data member for storing original path.
1065 (_Dir_stack::report_error): Define new member function.
1066 (__directory_iterator_nofollow): Move here from dir-common.h and
1067 fix value to be a power of two.
1068 (__directory_iterator_filename_only): Define new constant.
1069 (recursive_directory_iterator): Construct _Dir object and move
1070 into _M_dirs stack. Pass skip_permission_denied argument to first
1071 advance call.
1072 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1073 (recursive_directory_iterator::__erase): Define new member
1074 function.
1075 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1076 (fs::remove_all): Use new recursive_directory_iterator::__erase
1077 member function.
1078 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1079 constructor and use openat to implement nofollow semantics.
1080 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1081 Define new member functions.
1082 (__directory_iterator_nofollow): Move to fs_dir.cc.
1083 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1084 base constructor.
1085 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1086 functions.
1087 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1088 parameters to take a _Dir rvalue instead of creating one.
1089 (recursive_directory_iterator): Check for new nofollow option.
1090 Construct _Dir object and move into _M_dirs stack. Pass
1091 skip_permission_denied argument to first advance call.
1092 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1093 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1094
1095 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1096
1097 * include/bits/allocator.h: Qualify std::allocator_traits in
1098 deprecated warnings.
1099 * libsupc++/exception (uncaught_exception): Add suggestion to
1100 deprecated warning.
1101
1102 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1103
1104 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1105 Add [[maybe_unused]] attribute.
1106 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1107 Likewise.
1108
1109 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1110
1111 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1112 custom comparison function for multiset.
1113 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1114 comparison function for set.
1115
1116 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1117
1118 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1119 Change member function to data member of function pointer type.
1120
1121 2022-02-02 Martin Sebor <msebor@redhat.com>
1122
1123 PR libstdc++/101831
1124 * include/std/array (begin): Declare const member function attribute
1125 const.
1126 (end, rbegin, rend, size, max_size, empty, data): Same.
1127 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
1128 * testsuite/23_containers/array/capacity/max_size.cc: Same.
1129 * testsuite/23_containers/array/capacity/size.cc: Same.
1130 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
1131
1132 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1133
1134 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1135 autoconf macro to check whether d_type is present.
1136 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1137 Likewise.
1138
1139 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1140
1141 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
1142 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1143 Check follow_directory_symlink option.
1144 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1145 Likewise.
1146
1147 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1148
1149 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
1150 Reset state to past-the-end iterator on error.
1151 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
1152 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
1153 it might get reset.
1154 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
1155 for the TS implementation.
1156 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
1157 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
1158
1159 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1160
1161 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
1162
1163 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1164
1165 PR libstdc++/104301
1166 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
1167 for stdio_pure and stdio_posix options.
1168 * configure: Regenerate.
1169
1170 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
1171
1172 * include/bits/atomic_wait.h: Change memory order from
1173 Acquire/Release with relaxed loads to SeqCst+Release for
1174 accesses to the waiter's count.
1175
1176 2022-01-31 Martin Liska <mliska@suse.cz>
1177
1178 * acinclude.m4: Detect *_ld_is_mold and use it.
1179 * configure: Regenerate.
1180
1181 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
1182
1183 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
1184 simulator targets.
1185 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
1186
1187 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1188
1189 PR libstdc++/100516
1190 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
1191 Add __builtin_unreachable to loop.
1192 * testsuite/23_containers/deque/100516.cc: New test.
1193
1194 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1195
1196 * include/bits/ranges_base.h (ranges::advance): Avoid signed
1197 overflow. Do nothing if already equal to desired result.
1198 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1199 New test.
1200
1201 2022-01-27 Martin Liska <mliska@suse.cz>
1202
1203 PR libstdc++/104259
1204 * acinclude.m4: Fix typo.
1205 * configure: Regenerate.
1206
1207 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1208
1209 PR libstdc++/104019
1210 * include/bits/istream.tcc (basic_istream::sentry): Add braces
1211 around try-block.
1212 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
1213 Add pragmas to disable bogus warnings from PR 61596.
1214
1215 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1216
1217 PR libstdc++/104217
1218 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
1219 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
1220 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
1221
1222 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1223
1224 PR libstdc++/104161
1225 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1226 fdopendir.
1227 * config.h.in: Regenerate.
1228 * configure: Regenerate.
1229 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
1230 and pass it to base class constructor.
1231 (directory_iterator): Pass nofollow flag to _Dir constructor.
1232 (fs::recursive_directory_iterator::increment): Likewise.
1233 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
1234 directory_iterator constructor. Move error check outside loop.
1235 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
1236 constructor and when it's set use ::open with O_NOFOLLOW and
1237 O_DIRECTORY.
1238 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
1239 and pass it to base class constructor.
1240 (directory_iterator): Pass nofollow flag to _Dir constructor.
1241 (fs::recursive_directory_iterator::increment): Likewise.
1242 * src/filesystem/ops.cc (remove_all): Use nofollow option for
1243 directory_iterator constructor. Move error check outside loop.
1244
1245 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1246
1247 PR libstdc++/104032
1248 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
1249 mem-initializer for _M_buf.
1250 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
1251 member access.
1252 * testsuite/27_io/spanstream/2.cc: New test.
1253
1254 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1255
1256 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
1257 Define macro for case where std::from_chars is implemented in
1258 terms of strtod, strtof or strtold.
1259 (buffer_resource, valid_fmt, find_end_of_float, pattern)
1260 (from_chars_impl, make_result, reserve_string): Do not define
1261 unless USE_STRTOD_FOR_FROM_CHARS is defined.
1262 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
1263 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
1264 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
1265 is binary64.
1266
1267 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1268
1269 PR libstdc++/104174
1270 * include/bits/hashtable_policy.h (_Map_base): Add partial
1271 specialization for maps with const key types.
1272 * testsuite/23_containers/unordered_map/104174.cc: New test.
1273
1274 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1275
1276 PR libstdc++/104019
1277 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
1278 Set members to zero without type punning.
1279
1280 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1281
1282 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
1283
1284 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1285
1286 PR libstdc++/87193
1287 PR libstdc++/104019
1288 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
1289 Define as type long.
1290 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1291 Likewise.
1292 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
1293 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
1294 (__cpp_lib_chrono_udls): Likewise.
1295 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
1296 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
1297 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
1298 Likewise.
1299 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
1300 Likewise.
1301 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
1302 (__cpp_lib_sample): Likewise.
1303 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
1304 Likewise.
1305 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1306 Likewise.
1307 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
1308 Likewise.
1309 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
1310 Likewise.
1311 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1312 Likewise.
1313 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
1314 Likewise.
1315 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
1316 Likewise.
1317 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
1318 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
1319 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
1320 Likewise.
1321 * include/std/complex (__cpp_lib_complex_udls): Likewise.
1322 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
1323 * include/std/functional (__cpp_lib_not_fn): Likewise.
1324 (__cpp_lib_boyer_moore_searcher): Likewise.
1325 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
1326 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
1327 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
1328 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
1329 * include/std/tuple (__cpp_lib_apply): Likewise.
1330 (__cpp_lib_make_from_tuple): Likewise.
1331 * include/std/type_traits (__cpp_lib_integral_constant_callable)
1332 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
1333 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
1334 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
1335 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
1336 (__cpp_lib_has_unique_object_representations)
1337 (__cpp_lib_is_aggregate): Likewise.
1338 * include/std/version: Likewise.
1339 * libsupc++/new (__cpp_lib_launder): Likewise.
1340
1341 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1342
1343 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
1344 condition for C++17 definition.
1345
1346 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1347
1348 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
1349 Add constexpr.
1350 (_Sp_atomic::_M_ptr): Add default member-initializer.
1351 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1352 Check constant initialization.
1353 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1354
1355 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
1356
1357 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
1358 equivalent attribute for Clang.
1359 * src/c++11/future.cc (__constinit): Likewise.
1360 * src/c++11/system_error.cc (__constinit): Likewise.
1361 * src/c++17/memory_resource.cc (__constinit): Likewise.
1362
1363 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
1364
1365 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
1366 src/libbacktrace/.libs to LDFLAGS if those directories exist.
1367
1368 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1369
1370 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
1371 from default flags.
1372 * configure: Regenerate.
1373
1374 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1375
1376 PR libstdc++/104123
1377 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
1378 <stddef.h>.
1379
1380 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1381
1382 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
1383 linker search paths.
1384 * src/Makefile.am: Fix src/debug/libbacktrace build.
1385 * src/Makefile.in: Regenerate.
1386 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
1387 variable. Use symlinks for the source files.
1388 * src/libbacktrace/Makefile.in: Regenerate.
1389
1390 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
1391
1392 * include/experimental/bits/simd.h (__floating_point_flags): Do
1393 not rely on math_errhandling to expand to a constant expression.
1394
1395 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1396
1397 * doc/xml/manual/evolution.xml: Document deprecations.
1398 * doc/xml/manual/status_cxx2017.xml: Update status.
1399 * doc/html/*: Regenerate.
1400
1401 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1402
1403 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
1404 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
1405
1406 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1407
1408 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
1409 function.
1410
1411 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1412
1413 PR libstdc++/104101
1414 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
1415 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
1416
1417 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1418
1419 PR libstdc++/104099
1420 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
1421 define for C++23.
1422 (operator=(nullptr_t)): Likewise.
1423 * include/bits/cow_string.h: Likewise.
1424 * include/std/string_view (basic_string_view(nullptr_t)):
1425 Likewise.
1426 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
1427 expected error. Add examples that become ill-formed in C++23.
1428 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1429 Adjust expected errors.
1430 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1431 Likewise.
1432
1433 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1434
1435 PR libstdc++/104098
1436 * include/bits/stl_iterator.h (reverse_iterator): Check
1437 __cpp_lib_concepts instead of __cplusplus.
1438
1439 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1440
1441 PR libstdc++/101124
1442 * include/bits/stl_pair.h (pair): Adjust constraints on
1443 deprecated constructors accepting literal zero as null pointer
1444 constant. Improve wording of deprecated attribute.
1445 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
1446 constructors do not cause ambiguities for copyable types.
1447
1448 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1449
1450 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
1451 non-deprecated alternative.
1452
1453 2022-01-18 Tom Honermann <tom@honermann.net>
1454
1455 * acinclude.m4: Define config macros if uchar.h provides
1456 c8rtomb() and mbrtoc8().
1457 * config.h.in: Regenerate.
1458 * configure: Regenerate.
1459 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
1460 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
1461 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
1462 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
1463 New test.
1464 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
1465 New test.
1466
1467 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1468
1469 * include/Makefile.am: Install new header.
1470 * include/Makefile.in: Regenerate.
1471 * include/c_compatibility/stdatomic.h: New file.
1472 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
1473
1474 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1475
1476 PR libstdc++/104080
1477 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1478 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
1479 Define in terms of __BYTE_ORDER__.
1480
1481 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1482
1483 PR libstdc++/104080
1484 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
1485 * src/c++17/fast_float/fast_float.h (round): Use explicit
1486 template argument list for std::min.
1487
1488 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1489
1490 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
1491 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
1492 upcoming release.
1493 * doc/html/manual/status.html: Regenerate.
1494
1495 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1496
1497 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
1498 comments.
1499 * configure: Regenerate.
1500
1501 2022-01-17 Patrick Palka <ppalka@redhat.com>
1502
1503 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
1504 Conditionally define, and use it to conditionally include
1505 fast_float.
1506 (from_chars): Use fast_float for float and double when
1507 USE_LIB_FAST_FLOAT.
1508
1509 2022-01-17 Patrick Palka <ppalka@redhat.com>
1510
1511 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1512 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
1513 case of over/underflow, return errc::result_out_of_range and don't
1514 modify 'value'.
1515
1516 2022-01-17 Patrick Palka <ppalka@redhat.com>
1517
1518 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1519 * src/c++17/fast_float/fast_float.h: Apply local modifications.
1520
1521 2022-01-17 Patrick Palka <ppalka@redhat.com>
1522
1523 * src/c++17/fast_float/LOCAL_PATCHES: New file.
1524 * src/c++17/fast_float/MERGE: New file.
1525 * src/c++17/fast_float/README.md: New file, copied from the
1526 fast_float repository.
1527 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
1528 of the fast_float library.
1529
1530 2022-01-17 Patrick Palka <ppalka@redhat.com>
1531
1532 * src/c++17/floating_from_chars.cc: Include <bit>.
1533 (ascii_to_hexit, starts_with_ci): Conditionally define.
1534 (__floating_from_chars_hex): Conditionally define.
1535 (from_chars): Use __floating_from_chars_hex for
1536 chars_format::hex parsing of binary32/64 float/double.
1537 (testsuite/20_util/from_chars/7.cc): New test.
1538 * testsuite/20_util/from_chars/7.cc: New file.
1539
1540 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1541
1542 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
1543 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
1544 * include/Makefile.am: Add new header.
1545 * include/Makefile.in: Regenerate.
1546 * include/std/stacktrace: New header.
1547 * include/std/version (__cpp_lib_stacktrace): Define.
1548 * Makefile.in: Regenerate.
1549 * config.h.in: Regenerate.
1550 * configure: Regenerate.
1551 * doc/Makefile.in: Regenerate.
1552 * libsupc++/Makefile.in: Regenerate.
1553 * po/Makefile.in: Regenerate.
1554 * python/Makefile.in: Regenerate.
1555 * src/Makefile.am: Regenerate.
1556 * src/Makefile.in: Regenerate.
1557 * src/c++11/Makefile.in: Regenerate.
1558 * src/c++17/Makefile.in: Regenerate.
1559 * src/c++20/Makefile.in: Regenerate.
1560 * src/c++98/Makefile.in: Regenerate.
1561 * src/filesystem/Makefile.in: Regenerate.
1562 * testsuite/Makefile.in: Regenerate.
1563 * src/libbacktrace/Makefile.am: New file.
1564 * src/libbacktrace/Makefile.in: New file.
1565 * src/libbacktrace/backtrace-rename.h: New file.
1566 * src/libbacktrace/backtrace-supported.h.in: New file.
1567 * src/libbacktrace/config.h.in: New file.
1568 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
1569 New proc.
1570 * testsuite/20_util/stacktrace/entry.cc: New test.
1571 * testsuite/20_util/stacktrace/synopsis.cc: New test.
1572 * testsuite/20_util/stacktrace/version.cc: New test.
1573
1574 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1575
1576 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
1577 names.
1578 * doc/html/manual/status.html: Regenerate.
1579
1580 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1581
1582 PR libstdc++/103650
1583 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
1584 * include/Makefile.in: Regenerate.
1585 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
1586
1587 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
1588
1589 * include/experimental/bits/simd.h (__floating_point_flags): Do
1590 not rely on the presence of the math_errhandling macro.
1591
1592 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1593
1594 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
1595 to qualified-id for dependent type.
1596
1597 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1598
1599 * doc/xml/manual/status_cxx2020.xml: Update.
1600 * doc/html/manual/status.html: Regenerate.
1601
1602 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1603 Thomas Rodgers <trodgers@redhat.com>
1604
1605 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
1606 New macro.
1607 (_Sp_atomic): New class template.
1608 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
1609 specializations.
1610 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
1611 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
1612 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
1613 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
1614 test.
1615 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
1616
1617 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
1618
1619 * include/experimental/bits/simd.h: Move feature detection bools
1620 and add __have_avx512bitalg, __have_avx512vbmi2,
1621 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
1622 __have_avx512vnni, __have_avx512vpopcntdq.
1623 (__detail::__machine_flags): New function which returns a unique
1624 uint64 depending on relevant -m and -f flags.
1625 (__detail::__odr_helper): New type alias for either an anonymous
1626 type or a type specialized with the __machine_flags number.
1627 (_SimdIntOperators): Change template parameters from _Impl to
1628 _Tp, _Abi because _Impl now has an __odr_helper parameter which
1629 may be _OdrEnforcer from the anonymous namespace, which makes
1630 for a bad base class.
1631 (many): Either add __odr_helper template parameter or mark as
1632 always_inline.
1633 * include/experimental/bits/simd_detail.h: Add defines for
1634 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
1635 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
1636 * include/experimental/bits/simd_builtin.h: Add __odr_helper
1637 template parameter or mark as always_inline.
1638 * include/experimental/bits/simd_fixed_size.h: Ditto.
1639 * include/experimental/bits/simd_math.h: Ditto.
1640 * include/experimental/bits/simd_scalar.h: Ditto.
1641 * include/experimental/bits/simd_neon.h: Add __odr_helper
1642 template parameter.
1643 * include/experimental/bits/simd_ppc.h: Ditto.
1644 * include/experimental/bits/simd_x86.h: Ditto.
1645
1646 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
1647
1648 * testsuite/22_locale/numpunct/members/char/3.cc:
1649 Require pt_PT locale instead of nl_NL.
1650 (test02): Use pt_PT locale instead of nl_NL.
1651
1652 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1653
1654 PR libstdc++/91260
1655 PR libstdc++/91383
1656 PR libstdc++/95065
1657 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
1658 attribute.
1659 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
1660 Disable deprecated warnings for base classes.
1661 (_Reference_wrapper_base): Likewise.
1662 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
1663 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
1664 * include/bits/stl_function.h (unary_function, binary_function):
1665 Add deprecated attribute.
1666 (unary_negate, not1, binary_negate, not2, ptr_fun)
1667 (pointer_to_unary_function, pointer_to_binary_function)
1668 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
1669 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
1670 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
1671 attributes.
1672 * include/bits/stl_iterator.h: Disable deprecated warnings for
1673 std::iterator base classes.
1674 * include/bits/stl_iterator_base_types.h (iterator): Add
1675 deprecated attribute.
1676 * include/bits/stl_map.h (map::value_compare): Disable
1677 deprecated warnings for base class.
1678 * include/bits/stl_multimap.h (multimap::value_compare):
1679 Likewise.
1680 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
1681 Add deprecated attribute.
1682 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
1683 * include/bits/stream_iterator.h: Disable deprecated warnings.
1684 * include/bits/streambuf_iterator.h: Likewise.
1685 * include/ext/bitmap_allocator.h: Remove unary_function base
1686 classes.
1687 * include/ext/functional: Disable deprecated warnings.
1688 * include/ext/rope: Likewise.
1689 * include/ext/throw_allocator.h: Likewise.
1690 * include/std/type_traits (result_of): Add deprecated attribute.
1691 * include/tr1/functional: Disable deprecated warnings.
1692 * include/tr1/functional_hash.h: Likewise.
1693 * testsuite/20_util/function_objects/binders/1.cc: Add
1694 -Wno-disable-deprecations.
1695 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
1696 * testsuite/20_util/function_objects/constexpr.cc: Add
1697 dg-warning.
1698 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
1699 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
1700 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
1701 Likewise.
1702 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
1703 Likewise.
1704 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
1705 Likewise.
1706 * testsuite/20_util/reference_wrapper/24803.cc:
1707 Likewise.
1708 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
1709 C++20 and check for absence of nested types.
1710 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
1711 std::binary_function base class.
1712 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
1713 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
1714 std::iterator base class.
1715 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
1716 Likewise.
1717 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
1718 Likewise.
1719 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
1720 Likewise.
1721 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
1722 Likewise.
1723 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
1724 Likewise.
1725 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
1726 Likewise.
1727 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
1728 Likewise.
1729 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
1730 Likewise.
1731 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
1732 Likewise.
1733 * testsuite/25_algorithms/copy/34595.cc:
1734 Likewise.
1735 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
1736 base class.
1737 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
1738 Disable deprecated warnings.
1739 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
1740 Likewise.
1741 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
1742 Likewise.
1743 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
1744 Likewise.
1745 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
1746 Likewise.
1747 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
1748 Likewise.
1749 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
1750 Likewise.
1751 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
1752 Likewise.
1753 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
1754 Likewise.
1755 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
1756 Likewise.
1757 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
1758 Likewise.
1759 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
1760 Likewise.
1761 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
1762 Likewise.
1763 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
1764 Likewise.
1765 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
1766 Likewise.
1767 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
1768 Likewise.
1769 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
1770 Likewise.
1771 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
1772 Likewise.
1773 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
1774 Likewise.
1775 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
1776 Likewise.
1777 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
1778 Likewise.
1779 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
1780 Likewise.
1781 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
1782 Likewise.
1783 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
1784 Likewise.
1785 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
1786 Likewise.
1787 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
1788 Likewise.
1789 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
1790 Likewise.
1791 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
1792 Likewise.
1793 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
1794 Likewise.
1795 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
1796 Likewise.
1797 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1798 Likewise.
1799 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1800 Likewise.
1801 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
1802 Likewise.
1803 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
1804 Likewise.
1805 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
1806 Likewise.
1807 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
1808 Likewise.
1809 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
1810 Likewise.
1811 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
1812 Likewise.
1813 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
1814 Likewise.
1815 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
1816 Likewise.
1817 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
1818 Likewise.
1819 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
1820 Likewise.
1821 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
1822 Likewise.
1823 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
1824 Likewise.
1825 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
1826 Likewise.
1827 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
1828 Likewise.
1829 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
1830 Likewise.
1831 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
1832 Likewise.
1833 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
1834 dg-warning.
1835 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1836 Likewise.
1837 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1838 Likewise.
1839 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
1840 Disable deprecated warnings.
1841 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
1842 Likewise.
1843 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
1844 std::unary_function base classes.
1845 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
1846 Remove std::iterator base classes.
1847
1848 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1849
1850 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
1851 Correct type of macro value.
1852 (shared_ptr): Add additional friend declarations.
1853 (make_shared, allocate_shared): Constrain existing overloads and
1854 remove static_assert.
1855 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
1856 New macro.
1857 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
1858 specialization for use with make_shared_for_overwrite.
1859 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
1860 (_Sp_counted_array_base): New class template.
1861 (_Sp_counted_array): New class template.
1862 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
1863 New constructor for allocating shared arrays.
1864 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
1865 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
1866 type.
1867 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
1868 (__cpp_lib_smart_ptr_for_overwrite): New macro.
1869 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
1870 expected errors.
1871 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
1872 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
1873 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
1874 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
1875 feature test macro. Test non-trivial default-initialization.
1876
1877 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1878
1879 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
1880 Also cast away cv-qualifiers when converting pointer to void.
1881 * testsuite/20_util/allocator/void.cc: Test construct function
1882 with cv-qualified types.
1883
1884 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1885
1886 PR libstdc++/103992
1887 * include/bits/stl_iterator.h (common_iterator): Use
1888 std::construct_at instead of placement new.
1889 * testsuite/24_iterators/common_iterator/1.cc: Check copy
1890 construction is usable in constant expressions.
1891
1892 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1893
1894 * doc/xml/manual/status_cxx2011.xml: Document new tokens
1895 accepted by std::random_device constructor.
1896 * doc/html/manual/status.html: Regenerate.
1897
1898 2022-01-12 Patrick Palka <ppalka@redhat.com>
1899
1900 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
1901 directive.
1902
1903 2022-01-12 Patrick Palka <ppalka@redhat.com>
1904
1905 PR libstdc++/103955
1906 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1907 Track the excess precision separately from the effective
1908 precision. Avoid overflow in bounds check by splitting it into
1909 two checks.
1910 (__floating_to_chars_precision): Avoid overflow in bounds checks
1911 similarly.
1912 * testsuite/20_util/to_chars/103955.cc: New test.
1913
1914 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1915
1916 PR libstdc++/103726
1917 * include/Makefile.am: Install <source_location> for
1918 freestanding.
1919 * include/Makefile.in: Regenerate.
1920 * include/std/version (__cpp_lib_source_location): Define for
1921 freestanding.
1922
1923 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1924
1925 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
1926 Add neoxcept (LWG 3593).
1927
1928 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1929
1930 * include/std/ranges (ranges::__detail::__box): Add constexpr to
1931 assignment operators (LWG 3572).
1932 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
1933 view that uses copyable-box.
1934
1935 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1936
1937 PR libstdc++/103726
1938 * include/Makefile.am: Install <coroutine> for freestanding.
1939 * include/Makefile.in: Regenerate.
1940 * include/std/coroutine: Adjust headers and preprocessor
1941 conditions.
1942 (__coroutine_traits_impl): Use concepts when available.
1943 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
1944
1945 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1946
1947 * include/std/ostream (operator<<(basic_ostream&, charT)):
1948 Use unformatted input if no padding is needed.
1949 (operator<<(basic_ostream<char>&, char)): Likewise.
1950
1951 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1952
1953 PR libstdc++/103891
1954 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1955 Define.
1956 * include/std/variant (__cpp_lib_variant): Only define C++20
1957 value when the compiler is known to support conditionally
1958 trivial destructors.
1959 * include/std/version (__cpp_lib_variant): Likewise.
1960
1961 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1962
1963 * include/bits/stl_iterator.h (common_iterator): Add constexpr
1964 to all member functions (LWG 3574).
1965 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
1966 tests as constant expressions.
1967 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1968
1969 2022-01-10 Jakub Jelinek <jakub@redhat.com>
1970
1971 PR libstdc++/77760
1972 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
1973 (time_get::_M_extract_via_format): Declare new method with
1974 __time_get_state& as an extra argument.
1975 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
1976 __state argument, set various fields in it while parsing. Handle %j,
1977 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
1978 for %p immediately. Add a wrapper around the method without the
1979 __state argument for backwards compatibility.
1980 (_M_extract_num): Remove all __len == 4 special cases.
1981 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
1982 initialize __state, pass it to _M_extract_via_format and finalize it
1983 at the end.
1984 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
1985 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
1986 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
1987 version, don't call do_get but call _M_extract_via_format instead to
1988 pass around state.
1989 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
1990 with extra __time_get_state and __time_get_state::_M_finalize_state.
1991 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
1992 day_of_the_year): New functions in anon namespace.
1993 (mon_yday): New var in anon namespace.
1994 (__time_get_state::_M_finalize_state): Define.
1995 * testsuite/22_locale/time_get/get/char/4.cc: New test.
1996 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
1997 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
1998 as year 197AD instead of error.
1999 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2000 year 2001 instead of error.
2001 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2002 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2003 197 as year 197AD instead of error.
2004 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2005 1 as year 2001 instead of error.
2006 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2007
2008 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2009
2010 PR libstdc++/103866
2011 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2012 nothing for freestanding builds.
2013 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2014 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2015 with --without-headers. Do not use GCC_HEADER_STDINT for
2016 freestanding builds.
2017 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2018 for freestanding builds.
2019 * configure: Regenerate.
2020 * Makefile.in: Regenerate.
2021 * doc/Makefile.in: Regenerate.
2022 * include/Makefile.in: Regenerate.
2023 * libsupc++/Makefile.in: Regenerate.
2024 * po/Makefile.in: Regenerate.
2025 * python/Makefile.in: Regenerate.
2026 * src/Makefile.in: Regenerate.
2027 * src/c++11/Makefile.in: Regenerate.
2028 * src/c++17/Makefile.in: Regenerate.
2029 * src/c++20/Makefile.in: Regenerate.
2030 * src/c++98/Makefile.in: Regenerate.
2031 * src/filesystem/Makefile.in: Regenerate.
2032 * testsuite/Makefile.in: Regenerate.
2033
2034 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2035
2036 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2037 Add dg-timeout-factor directive.
2038 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2039 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2040 * testsuite/28_regex/match_results/102667.cc: Likewise.
2041
2042 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2043
2044 * doc/xml/manual/using.xml: Update documentation around default
2045 -std option.
2046 * doc/html/*: Regenerate.
2047
2048 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2049
2050 PR libstdc++/100017
2051 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2052 * src/c++17/Makefile.in: Regenerate.
2053
2054 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
2055
2056 * testsuite/18_support/type_info/constexpr.cc: Add explicit
2057 -fdelete-null-pointer-checks option.
2058
2059 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
2060 Jonathan Wakely <jwakely@redhat.com>
2061
2062 PR libstdc++/103853
2063 * include/bits/forward_list.tcc (forward_list::merge): Check for
2064 self-merge.
2065 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2066
2067 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2068
2069 * include/bits/regex.h (basic_regex, match_results): Qualify
2070 name in friend declaration, to work around Clang bug.
2071
2072 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2073
2074 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2075
2076 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2077
2078 PR libstdc++/103911
2079 * include/std/charconv (__from_chars_alpha_to_num): Return
2080 char instead of unsigned char. Change invalid return value to
2081 127 instead of using numeric trait.
2082 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2083 Change type of variable to char.
2084
2085 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
2086
2087 PR libstdc++/68303
2088 * include/bits/hashtable_policy.h
2089 (_Hashtable_hash_traits<_Hash>): New.
2090 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2091 (_Hashtable_base<>::_M_key_equals): New.
2092 (_Hashtable_base<>::_M_equals): Use latter.
2093 (_Hashtable_base<>::_M_key_equals_tr): New.
2094 (_Hashtable_base<>::_M_equals_tr): Use latter.
2095 * include/bits/hashtable.h
2096 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2097 (_Hashtable<>::find): Loop through elements to look for key if size is lower
2098 than __small_size_threshold().
2099 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2100 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2101 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2102 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2103 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2104 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2105 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2106 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2107 * testsuite/util/testsuite_performance.h
2108 (report_performance): Use 9 width to display memory.
2109 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2110 New performance test case.
2111
2112 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2113
2114 PR libstdc++/103919
2115 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2116 Relax constraints on string_view parameter.
2117 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
2118 Likewise.
2119 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
2120
2121 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2122
2123 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
2124 ARM EABI.
2125 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
2126 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
2127 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
2128 is emitted.
2129 (type_info::__equal): Define alias symbol.
2130 * libsupc++/typeinfo (type_info::before): Combine different
2131 implementations into one.
2132 (type_info::operator==): Likewise. Use address equality for
2133 constant evaluation. Call __equal for targets that require the
2134 definition to be non-inline.
2135 * testsuite/18_support/type_info/constexpr.cc: New test.
2136
2137 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2138
2139 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
2140 class and virtual functions as 'final'.
2141 (io_category_instance): Use constinit union to make the object
2142 immortal.
2143 * src/c++11/future.cc (future_error_category): Define class and
2144 virtual functions as 'final'.
2145 (future_category_instance): Use constinit union.
2146
2147 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2148
2149 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
2150 versioned namespace from the type name that is printed.
2151
2152 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2153
2154 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
2155 printer for std::regex NFA states.
2156
2157 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2158
2159 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
2160 placeholders in comments.
2161 * testsuite/23_containers/forward_list/operations/2.cc:
2162 Likewise.
2163 * testsuite/23_containers/forward_list/operations/3.cc:
2164 Likewise.
2165 * testsuite/23_containers/forward_list/operations/4.cc:
2166 Likewise.
2167 * testsuite/23_containers/forward_list/operations/5.cc:
2168 Likewise.
2169 * testsuite/23_containers/forward_list/operations/6.cc:
2170 Likewise.
2171 * testsuite/23_containers/forward_list/operations/7.cc:
2172 Likewise.
2173
2174 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2175
2176 PR libstdc++/103848
2177 * include/bits/stl_deque.h (operator-): Do not use 0 as null
2178 pointer constant.
2179
2180 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2181
2182 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
2183 Use std::_Construct for construct.
2184
2185 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2186
2187 PR libstdc++/103877
2188 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
2189 * doc/html/faq.html: Regenerate.
2190
2191 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2192
2193 * include/bits/regex.h (__regex_algo_impl): Change __policy and
2194 __match_mode template parameters to be function parameters.
2195 (regex_match, regex_search): Pass policy and match mode as
2196 function arguments.
2197 * include/bits/regex.tcc (__regex_algo_impl): Change template
2198 parameters to function parameters.
2199 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
2200 'if constexpr' for conditions using template parameters.
2201 (_RegexTranslator): Likewise.
2202 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
2203 Likewise.
2204 * testsuite/util/testsuite_regex.h (regex_match_debug)
2205 (regex_search_debug): Move template arguments to function
2206 arguments.
2207
2208 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2209
2210 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
2211 results even if the match failed.
2212
2213 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2214
2215 * include/bits/regex_compiler.tcc: Adjust all calls to
2216 __throw_regex_error.
2217 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
2218 attribute.
2219 * include/bits/regex_scanner.tcc: Likewise.
2220 * src/c++11/regex.cc (desc): New helper function.
2221 (regex_error::regex_error(error_type)): Use desc to get a string
2222 corresponding to the error code.
2223
2224 \f
2225 Copyright (C) 2022 Free Software Foundation, Inc.
2226
2227 Copying and distribution of this file, with or without modification,
2228 are permitted in any medium without royalty provided the copyright
2229 notice and this notice are preserved.