1 2022-01-17 Patrick Palka <ppalka@redhat.com>
3 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4 Conditionally define, and use it to conditionally include
6 (from_chars): Use fast_float for float and double when
9 2022-01-17 Patrick Palka <ppalka@redhat.com>
11 * src/c++17/fast_float/LOCAL_PATCHES: Update.
12 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
13 case of over/underflow, return errc::result_out_of_range and don't
16 2022-01-17 Patrick Palka <ppalka@redhat.com>
18 * src/c++17/fast_float/LOCAL_PATCHES: Update.
19 * src/c++17/fast_float/fast_float.h: Apply local modifications.
21 2022-01-17 Patrick Palka <ppalka@redhat.com>
23 * src/c++17/fast_float/LOCAL_PATCHES: New file.
24 * src/c++17/fast_float/MERGE: New file.
25 * src/c++17/fast_float/README.md: New file, copied from the
26 fast_float repository.
27 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
28 of the fast_float library.
30 2022-01-17 Patrick Palka <ppalka@redhat.com>
32 * src/c++17/floating_from_chars.cc: Include <bit>.
33 (ascii_to_hexit, starts_with_ci): Conditionally define.
34 (__floating_from_chars_hex): Conditionally define.
35 (from_chars): Use __floating_from_chars_hex for
36 chars_format::hex parsing of binary32/64 float/double.
37 (testsuite/20_util/from_chars/7.cc): New test.
38 * testsuite/20_util/from_chars/7.cc: New file.
40 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
42 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
43 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
44 * include/Makefile.am: Add new header.
45 * include/Makefile.in: Regenerate.
46 * include/std/stacktrace: New header.
47 * include/std/version (__cpp_lib_stacktrace): Define.
48 * Makefile.in: Regenerate.
49 * config.h.in: Regenerate.
50 * configure: Regenerate.
51 * doc/Makefile.in: Regenerate.
52 * libsupc++/Makefile.in: Regenerate.
53 * po/Makefile.in: Regenerate.
54 * python/Makefile.in: Regenerate.
55 * src/Makefile.am: Regenerate.
56 * src/Makefile.in: Regenerate.
57 * src/c++11/Makefile.in: Regenerate.
58 * src/c++17/Makefile.in: Regenerate.
59 * src/c++20/Makefile.in: Regenerate.
60 * src/c++98/Makefile.in: Regenerate.
61 * src/filesystem/Makefile.in: Regenerate.
62 * testsuite/Makefile.in: Regenerate.
63 * src/libbacktrace/Makefile.am: New file.
64 * src/libbacktrace/Makefile.in: New file.
65 * src/libbacktrace/backtrace-rename.h: New file.
66 * src/libbacktrace/backtrace-supported.h.in: New file.
67 * src/libbacktrace/config.h.in: New file.
68 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
70 * testsuite/20_util/stacktrace/entry.cc: New test.
71 * testsuite/20_util/stacktrace/synopsis.cc: New test.
72 * testsuite/20_util/stacktrace/version.cc: New test.
74 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
76 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
78 * doc/html/manual/status.html: Regenerate.
80 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
83 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
84 * include/Makefile.in: Regenerate.
85 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
87 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
89 * include/experimental/bits/simd.h (__floating_point_flags): Do
90 not rely on the presence of the math_errhandling macro.
92 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
94 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
95 to qualified-id for dependent type.
97 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
99 * doc/xml/manual/status_cxx2020.xml: Update.
100 * doc/html/manual/status.html: Regenerate.
102 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
103 Thomas Rodgers <trodgers@redhat.com>
105 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
107 (_Sp_atomic): New class template.
108 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
110 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
111 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
112 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
113 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
115 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
117 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
119 * include/experimental/bits/simd.h: Move feature detection bools
120 and add __have_avx512bitalg, __have_avx512vbmi2,
121 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
122 __have_avx512vnni, __have_avx512vpopcntdq.
123 (__detail::__machine_flags): New function which returns a unique
124 uint64 depending on relevant -m and -f flags.
125 (__detail::__odr_helper): New type alias for either an anonymous
126 type or a type specialized with the __machine_flags number.
127 (_SimdIntOperators): Change template parameters from _Impl to
128 _Tp, _Abi because _Impl now has an __odr_helper parameter which
129 may be _OdrEnforcer from the anonymous namespace, which makes
130 for a bad base class.
131 (many): Either add __odr_helper template parameter or mark as
133 * include/experimental/bits/simd_detail.h: Add defines for
134 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
135 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
136 * include/experimental/bits/simd_builtin.h: Add __odr_helper
137 template parameter or mark as always_inline.
138 * include/experimental/bits/simd_fixed_size.h: Ditto.
139 * include/experimental/bits/simd_math.h: Ditto.
140 * include/experimental/bits/simd_scalar.h: Ditto.
141 * include/experimental/bits/simd_neon.h: Add __odr_helper
143 * include/experimental/bits/simd_ppc.h: Ditto.
144 * include/experimental/bits/simd_x86.h: Ditto.
146 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
148 * testsuite/22_locale/numpunct/members/char/3.cc:
149 Require pt_PT locale instead of nl_NL.
150 (test02): Use pt_PT locale instead of nl_NL.
152 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
157 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
159 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
160 Disable deprecated warnings for base classes.
161 (_Reference_wrapper_base): Likewise.
162 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
163 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
164 * include/bits/stl_function.h (unary_function, binary_function):
165 Add deprecated attribute.
166 (unary_negate, not1, binary_negate, not2, ptr_fun)
167 (pointer_to_unary_function, pointer_to_binary_function)
168 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
169 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
170 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
172 * include/bits/stl_iterator.h: Disable deprecated warnings for
173 std::iterator base classes.
174 * include/bits/stl_iterator_base_types.h (iterator): Add
175 deprecated attribute.
176 * include/bits/stl_map.h (map::value_compare): Disable
177 deprecated warnings for base class.
178 * include/bits/stl_multimap.h (multimap::value_compare):
180 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
181 Add deprecated attribute.
182 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
183 * include/bits/stream_iterator.h: Disable deprecated warnings.
184 * include/bits/streambuf_iterator.h: Likewise.
185 * include/ext/bitmap_allocator.h: Remove unary_function base
187 * include/ext/functional: Disable deprecated warnings.
188 * include/ext/rope: Likewise.
189 * include/ext/throw_allocator.h: Likewise.
190 * include/std/type_traits (result_of): Add deprecated attribute.
191 * include/tr1/functional: Disable deprecated warnings.
192 * include/tr1/functional_hash.h: Likewise.
193 * testsuite/20_util/function_objects/binders/1.cc: Add
194 -Wno-disable-deprecations.
195 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
196 * testsuite/20_util/function_objects/constexpr.cc: Add
198 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
199 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
200 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
202 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
204 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
206 * testsuite/20_util/reference_wrapper/24803.cc:
208 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
209 C++20 and check for absence of nested types.
210 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
211 std::binary_function base class.
212 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
213 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
214 std::iterator base class.
215 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
217 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
219 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
221 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
223 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
225 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
227 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
229 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
231 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
233 * testsuite/25_algorithms/copy/34595.cc:
235 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
237 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
238 Disable deprecated warnings.
239 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
241 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
243 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
245 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
247 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
249 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
251 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
253 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
255 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
257 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
259 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
261 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
263 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
265 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
267 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
269 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
271 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
273 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
275 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
277 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
279 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
281 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
283 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
285 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
287 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
289 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
291 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
293 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
295 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
297 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
299 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
301 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
303 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
305 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
307 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
309 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
311 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
313 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
315 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
317 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
319 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
321 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
323 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
325 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
327 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
329 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
331 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
333 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
335 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
337 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
339 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
340 Disable deprecated warnings.
341 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
343 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
344 std::unary_function base classes.
345 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
346 Remove std::iterator base classes.
348 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
350 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
351 Correct type of macro value.
352 (shared_ptr): Add additional friend declarations.
353 (make_shared, allocate_shared): Constrain existing overloads and
354 remove static_assert.
355 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
357 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
358 specialization for use with make_shared_for_overwrite.
359 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
360 (_Sp_counted_array_base): New class template.
361 (_Sp_counted_array): New class template.
362 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
363 New constructor for allocating shared arrays.
364 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
365 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
367 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
368 (__cpp_lib_smart_ptr_for_overwrite): New macro.
369 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
371 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
372 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
373 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
374 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
375 feature test macro. Test non-trivial default-initialization.
377 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
379 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
380 Also cast away cv-qualifiers when converting pointer to void.
381 * testsuite/20_util/allocator/void.cc: Test construct function
382 with cv-qualified types.
384 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
387 * include/bits/stl_iterator.h (common_iterator): Use
388 std::construct_at instead of placement new.
389 * testsuite/24_iterators/common_iterator/1.cc: Check copy
390 construction is usable in constant expressions.
392 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
394 * doc/xml/manual/status_cxx2011.xml: Document new tokens
395 accepted by std::random_device constructor.
396 * doc/html/manual/status.html: Regenerate.
398 2022-01-12 Patrick Palka <ppalka@redhat.com>
400 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
403 2022-01-12 Patrick Palka <ppalka@redhat.com>
406 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
407 Track the excess precision separately from the effective
408 precision. Avoid overflow in bounds check by splitting it into
410 (__floating_to_chars_precision): Avoid overflow in bounds checks
412 * testsuite/20_util/to_chars/103955.cc: New test.
414 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
417 * include/Makefile.am: Install <source_location> for
419 * include/Makefile.in: Regenerate.
420 * include/std/version (__cpp_lib_source_location): Define for
423 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
425 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
426 Add neoxcept (LWG 3593).
428 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
430 * include/std/ranges (ranges::__detail::__box): Add constexpr to
431 assignment operators (LWG 3572).
432 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
433 view that uses copyable-box.
435 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
438 * include/Makefile.am: Install <coroutine> for freestanding.
439 * include/Makefile.in: Regenerate.
440 * include/std/coroutine: Adjust headers and preprocessor
442 (__coroutine_traits_impl): Use concepts when available.
443 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
445 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
447 * include/std/ostream (operator<<(basic_ostream&, charT)):
448 Use unformatted input if no padding is needed.
449 (operator<<(basic_ostream<char>&, char)): Likewise.
451 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
454 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
456 * include/std/variant (__cpp_lib_variant): Only define C++20
457 value when the compiler is known to support conditionally
459 * include/std/version (__cpp_lib_variant): Likewise.
461 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
463 * include/bits/stl_iterator.h (common_iterator): Add constexpr
464 to all member functions (LWG 3574).
465 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
466 tests as constant expressions.
467 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
469 2022-01-10 Jakub Jelinek <jakub@redhat.com>
472 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
473 (time_get::_M_extract_via_format): Declare new method with
474 __time_get_state& as an extra argument.
475 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
476 __state argument, set various fields in it while parsing. Handle %j,
477 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
478 for %p immediately. Add a wrapper around the method without the
479 __state argument for backwards compatibility.
480 (_M_extract_num): Remove all __len == 4 special cases.
481 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
482 initialize __state, pass it to _M_extract_via_format and finalize it
484 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
485 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
486 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
487 version, don't call do_get but call _M_extract_via_format instead to
489 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
490 with extra __time_get_state and __time_get_state::_M_finalize_state.
491 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
492 day_of_the_year): New functions in anon namespace.
493 (mon_yday): New var in anon namespace.
494 (__time_get_state::_M_finalize_state): Define.
495 * testsuite/22_locale/time_get/get/char/4.cc: New test.
496 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
497 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
498 as year 197AD instead of error.
499 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
500 year 2001 instead of error.
501 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
502 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
503 197 as year 197AD instead of error.
504 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
505 1 as year 2001 instead of error.
506 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
508 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
511 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
512 nothing for freestanding builds.
513 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
514 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
515 with --without-headers. Do not use GCC_HEADER_STDINT for
517 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
518 for freestanding builds.
519 * configure: Regenerate.
520 * Makefile.in: Regenerate.
521 * doc/Makefile.in: Regenerate.
522 * include/Makefile.in: Regenerate.
523 * libsupc++/Makefile.in: Regenerate.
524 * po/Makefile.in: Regenerate.
525 * python/Makefile.in: Regenerate.
526 * src/Makefile.in: Regenerate.
527 * src/c++11/Makefile.in: Regenerate.
528 * src/c++17/Makefile.in: Regenerate.
529 * src/c++20/Makefile.in: Regenerate.
530 * src/c++98/Makefile.in: Regenerate.
531 * src/filesystem/Makefile.in: Regenerate.
532 * testsuite/Makefile.in: Regenerate.
534 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
536 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
537 Add dg-timeout-factor directive.
538 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
539 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
540 * testsuite/28_regex/match_results/102667.cc: Likewise.
542 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
544 * doc/xml/manual/using.xml: Update documentation around default
546 * doc/html/*: Regenerate.
548 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
551 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
552 * src/c++17/Makefile.in: Regenerate.
554 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
556 * testsuite/18_support/type_info/constexpr.cc: Add explicit
557 -fdelete-null-pointer-checks option.
559 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
560 Jonathan Wakely <jwakely@redhat.com>
563 * include/bits/forward_list.tcc (forward_list::merge): Check for
565 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
567 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
569 * include/bits/regex.h (basic_regex, match_results): Qualify
570 name in friend declaration, to work around Clang bug.
572 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
574 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
576 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
579 * include/std/charconv (__from_chars_alpha_to_num): Return
580 char instead of unsigned char. Change invalid return value to
581 127 instead of using numeric trait.
582 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
583 Change type of variable to char.
585 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
588 * include/bits/hashtable_policy.h
589 (_Hashtable_hash_traits<_Hash>): New.
590 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
591 (_Hashtable_base<>::_M_key_equals): New.
592 (_Hashtable_base<>::_M_equals): Use latter.
593 (_Hashtable_base<>::_M_key_equals_tr): New.
594 (_Hashtable_base<>::_M_equals_tr): Use latter.
595 * include/bits/hashtable.h
596 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
597 (_Hashtable<>::find): Loop through elements to look for key if size is lower
598 than __small_size_threshold().
599 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
600 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
601 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
602 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
603 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
604 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
605 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
606 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
607 * testsuite/util/testsuite_performance.h
608 (report_performance): Use 9 width to display memory.
609 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
610 New performance test case.
612 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
615 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
616 Relax constraints on string_view parameter.
617 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
619 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
621 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
623 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
625 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
626 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
627 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
629 (type_info::__equal): Define alias symbol.
630 * libsupc++/typeinfo (type_info::before): Combine different
631 implementations into one.
632 (type_info::operator==): Likewise. Use address equality for
633 constant evaluation. Call __equal for targets that require the
634 definition to be non-inline.
635 * testsuite/18_support/type_info/constexpr.cc: New test.
637 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
639 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
640 class and virtual functions as 'final'.
641 (io_category_instance): Use constinit union to make the object
643 * src/c++11/future.cc (future_error_category): Define class and
644 virtual functions as 'final'.
645 (future_category_instance): Use constinit union.
647 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
649 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
650 versioned namespace from the type name that is printed.
652 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
654 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
655 printer for std::regex NFA states.
657 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
659 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
660 placeholders in comments.
661 * testsuite/23_containers/forward_list/operations/2.cc:
663 * testsuite/23_containers/forward_list/operations/3.cc:
665 * testsuite/23_containers/forward_list/operations/4.cc:
667 * testsuite/23_containers/forward_list/operations/5.cc:
669 * testsuite/23_containers/forward_list/operations/6.cc:
671 * testsuite/23_containers/forward_list/operations/7.cc:
674 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
677 * include/bits/stl_deque.h (operator-): Do not use 0 as null
680 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
682 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
683 Use std::_Construct for construct.
685 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
688 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
689 * doc/html/faq.html: Regenerate.
691 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
693 * include/bits/regex.h (__regex_algo_impl): Change __policy and
694 __match_mode template parameters to be function parameters.
695 (regex_match, regex_search): Pass policy and match mode as
697 * include/bits/regex.tcc (__regex_algo_impl): Change template
698 parameters to function parameters.
699 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
700 'if constexpr' for conditions using template parameters.
701 (_RegexTranslator): Likewise.
702 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
704 * testsuite/util/testsuite_regex.h (regex_match_debug)
705 (regex_search_debug): Move template arguments to function
708 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
710 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
711 results even if the match failed.
713 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
715 * include/bits/regex_compiler.tcc: Adjust all calls to
717 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
719 * include/bits/regex_scanner.tcc: Likewise.
720 * src/c++11/regex.cc (desc): New helper function.
721 (regex_error::regex_error(error_type)): Use desc to get a string
722 corresponding to the error code.
725 Copyright (C) 2022 Free Software Foundation, Inc.
727 Copying and distribution of this file, with or without modification,
728 are permitted in any medium without royalty provided the copyright
729 notice and this notice are preserved.