1 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
3 * include/experimental/bits/simd.h: Move feature detection bools
4 and add __have_avx512bitalg, __have_avx512vbmi2,
5 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
6 __have_avx512vnni, __have_avx512vpopcntdq.
7 (__detail::__machine_flags): New function which returns a unique
8 uint64 depending on relevant -m and -f flags.
9 (__detail::__odr_helper): New type alias for either an anonymous
10 type or a type specialized with the __machine_flags number.
11 (_SimdIntOperators): Change template parameters from _Impl to
12 _Tp, _Abi because _Impl now has an __odr_helper parameter which
13 may be _OdrEnforcer from the anonymous namespace, which makes
15 (many): Either add __odr_helper template parameter or mark as
17 * include/experimental/bits/simd_detail.h: Add defines for
18 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
19 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
20 * include/experimental/bits/simd_builtin.h: Add __odr_helper
21 template parameter or mark as always_inline.
22 * include/experimental/bits/simd_fixed_size.h: Ditto.
23 * include/experimental/bits/simd_math.h: Ditto.
24 * include/experimental/bits/simd_scalar.h: Ditto.
25 * include/experimental/bits/simd_neon.h: Add __odr_helper
27 * include/experimental/bits/simd_ppc.h: Ditto.
28 * include/experimental/bits/simd_x86.h: Ditto.
30 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
32 * testsuite/22_locale/numpunct/members/char/3.cc:
33 Require pt_PT locale instead of nl_NL.
34 (test02): Use pt_PT locale instead of nl_NL.
36 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
41 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
43 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
44 Disable deprecated warnings for base classes.
45 (_Reference_wrapper_base): Likewise.
46 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
47 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
48 * include/bits/stl_function.h (unary_function, binary_function):
49 Add deprecated attribute.
50 (unary_negate, not1, binary_negate, not2, ptr_fun)
51 (pointer_to_unary_function, pointer_to_binary_function)
52 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
53 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
54 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
56 * include/bits/stl_iterator.h: Disable deprecated warnings for
57 std::iterator base classes.
58 * include/bits/stl_iterator_base_types.h (iterator): Add
60 * include/bits/stl_map.h (map::value_compare): Disable
61 deprecated warnings for base class.
62 * include/bits/stl_multimap.h (multimap::value_compare):
64 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
65 Add deprecated attribute.
66 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
67 * include/bits/stream_iterator.h: Disable deprecated warnings.
68 * include/bits/streambuf_iterator.h: Likewise.
69 * include/ext/bitmap_allocator.h: Remove unary_function base
71 * include/ext/functional: Disable deprecated warnings.
72 * include/ext/rope: Likewise.
73 * include/ext/throw_allocator.h: Likewise.
74 * include/std/type_traits (result_of): Add deprecated attribute.
75 * include/tr1/functional: Disable deprecated warnings.
76 * include/tr1/functional_hash.h: Likewise.
77 * testsuite/20_util/function_objects/binders/1.cc: Add
78 -Wno-disable-deprecations.
79 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
80 * testsuite/20_util/function_objects/constexpr.cc: Add
82 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
83 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
84 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
86 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
88 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
90 * testsuite/20_util/reference_wrapper/24803.cc:
92 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
93 C++20 and check for absence of nested types.
94 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
95 std::binary_function base class.
96 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
97 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
98 std::iterator base class.
99 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
101 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
103 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
105 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
107 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
109 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
111 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
113 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
115 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
117 * testsuite/25_algorithms/copy/34595.cc:
119 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
121 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
122 Disable deprecated warnings.
123 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
125 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
127 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
129 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
131 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
133 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
135 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
137 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
139 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
141 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
143 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
145 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
147 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
149 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
151 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
153 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
155 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
157 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
159 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
161 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
163 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
165 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
167 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
169 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
171 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
173 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
175 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
177 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
179 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
181 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
183 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
185 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
187 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
189 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
191 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
193 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
195 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
197 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
199 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
201 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
203 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
205 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
207 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
209 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
211 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
213 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
215 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
217 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
219 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
221 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
223 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
224 Disable deprecated warnings.
225 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
227 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
228 std::unary_function base classes.
229 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
230 Remove std::iterator base classes.
232 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
234 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
235 Correct type of macro value.
236 (shared_ptr): Add additional friend declarations.
237 (make_shared, allocate_shared): Constrain existing overloads and
238 remove static_assert.
239 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
241 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
242 specialization for use with make_shared_for_overwrite.
243 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
244 (_Sp_counted_array_base): New class template.
245 (_Sp_counted_array): New class template.
246 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
247 New constructor for allocating shared arrays.
248 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
249 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
251 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
252 (__cpp_lib_smart_ptr_for_overwrite): New macro.
253 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
255 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
256 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
257 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
258 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
259 feature test macro. Test non-trivial default-initialization.
261 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
263 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
264 Also cast away cv-qualifiers when converting pointer to void.
265 * testsuite/20_util/allocator/void.cc: Test construct function
266 with cv-qualified types.
268 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
271 * include/bits/stl_iterator.h (common_iterator): Use
272 std::construct_at instead of placement new.
273 * testsuite/24_iterators/common_iterator/1.cc: Check copy
274 construction is usable in constant expressions.
276 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
278 * doc/xml/manual/status_cxx2011.xml: Document new tokens
279 accepted by std::random_device constructor.
280 * doc/html/manual/status.html: Regenerate.
282 2022-01-12 Patrick Palka <ppalka@redhat.com>
284 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
287 2022-01-12 Patrick Palka <ppalka@redhat.com>
290 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
291 Track the excess precision separately from the effective
292 precision. Avoid overflow in bounds check by splitting it into
294 (__floating_to_chars_precision): Avoid overflow in bounds checks
296 * testsuite/20_util/to_chars/103955.cc: New test.
298 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
301 * include/Makefile.am: Install <source_location> for
303 * include/Makefile.in: Regenerate.
304 * include/std/version (__cpp_lib_source_location): Define for
307 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
309 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
310 Add neoxcept (LWG 3593).
312 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
314 * include/std/ranges (ranges::__detail::__box): Add constexpr to
315 assignment operators (LWG 3572).
316 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
317 view that uses copyable-box.
319 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
322 * include/Makefile.am: Install <coroutine> for freestanding.
323 * include/Makefile.in: Regenerate.
324 * include/std/coroutine: Adjust headers and preprocessor
326 (__coroutine_traits_impl): Use concepts when available.
327 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
329 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
331 * include/std/ostream (operator<<(basic_ostream&, charT)):
332 Use unformatted input if no padding is needed.
333 (operator<<(basic_ostream<char>&, char)): Likewise.
335 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
338 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
340 * include/std/variant (__cpp_lib_variant): Only define C++20
341 value when the compiler is known to support conditionally
343 * include/std/version (__cpp_lib_variant): Likewise.
345 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
347 * include/bits/stl_iterator.h (common_iterator): Add constexpr
348 to all member functions (LWG 3574).
349 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
350 tests as constant expressions.
351 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
353 2022-01-10 Jakub Jelinek <jakub@redhat.com>
356 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
357 (time_get::_M_extract_via_format): Declare new method with
358 __time_get_state& as an extra argument.
359 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
360 __state argument, set various fields in it while parsing. Handle %j,
361 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
362 for %p immediately. Add a wrapper around the method without the
363 __state argument for backwards compatibility.
364 (_M_extract_num): Remove all __len == 4 special cases.
365 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
366 initialize __state, pass it to _M_extract_via_format and finalize it
368 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
369 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
370 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
371 version, don't call do_get but call _M_extract_via_format instead to
373 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
374 with extra __time_get_state and __time_get_state::_M_finalize_state.
375 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
376 day_of_the_year): New functions in anon namespace.
377 (mon_yday): New var in anon namespace.
378 (__time_get_state::_M_finalize_state): Define.
379 * testsuite/22_locale/time_get/get/char/4.cc: New test.
380 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
381 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
382 as year 197AD instead of error.
383 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
384 year 2001 instead of error.
385 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
386 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
387 197 as year 197AD instead of error.
388 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
389 1 as year 2001 instead of error.
390 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
392 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
395 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
396 nothing for freestanding builds.
397 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
398 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
399 with --without-headers. Do not use GCC_HEADER_STDINT for
401 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
402 for freestanding builds.
403 * configure: Regenerate.
404 * Makefile.in: Regenerate.
405 * doc/Makefile.in: Regenerate.
406 * include/Makefile.in: Regenerate.
407 * libsupc++/Makefile.in: Regenerate.
408 * po/Makefile.in: Regenerate.
409 * python/Makefile.in: Regenerate.
410 * src/Makefile.in: Regenerate.
411 * src/c++11/Makefile.in: Regenerate.
412 * src/c++17/Makefile.in: Regenerate.
413 * src/c++20/Makefile.in: Regenerate.
414 * src/c++98/Makefile.in: Regenerate.
415 * src/filesystem/Makefile.in: Regenerate.
416 * testsuite/Makefile.in: Regenerate.
418 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
420 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
421 Add dg-timeout-factor directive.
422 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
423 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
424 * testsuite/28_regex/match_results/102667.cc: Likewise.
426 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
428 * doc/xml/manual/using.xml: Update documentation around default
430 * doc/html/*: Regenerate.
432 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
435 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
436 * src/c++17/Makefile.in: Regenerate.
438 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
440 * testsuite/18_support/type_info/constexpr.cc: Add explicit
441 -fdelete-null-pointer-checks option.
443 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
444 Jonathan Wakely <jwakely@redhat.com>
447 * include/bits/forward_list.tcc (forward_list::merge): Check for
449 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
451 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
453 * include/bits/regex.h (basic_regex, match_results): Qualify
454 name in friend declaration, to work around Clang bug.
456 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
458 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
460 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
463 * include/std/charconv (__from_chars_alpha_to_num): Return
464 char instead of unsigned char. Change invalid return value to
465 127 instead of using numeric trait.
466 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
467 Change type of variable to char.
469 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
472 * include/bits/hashtable_policy.h
473 (_Hashtable_hash_traits<_Hash>): New.
474 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
475 (_Hashtable_base<>::_M_key_equals): New.
476 (_Hashtable_base<>::_M_equals): Use latter.
477 (_Hashtable_base<>::_M_key_equals_tr): New.
478 (_Hashtable_base<>::_M_equals_tr): Use latter.
479 * include/bits/hashtable.h
480 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
481 (_Hashtable<>::find): Loop through elements to look for key if size is lower
482 than __small_size_threshold().
483 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
484 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
485 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
486 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
487 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
488 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
489 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
490 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
491 * testsuite/util/testsuite_performance.h
492 (report_performance): Use 9 width to display memory.
493 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
494 New performance test case.
496 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
499 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
500 Relax constraints on string_view parameter.
501 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
503 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
505 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
507 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
509 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
510 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
511 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
513 (type_info::__equal): Define alias symbol.
514 * libsupc++/typeinfo (type_info::before): Combine different
515 implementations into one.
516 (type_info::operator==): Likewise. Use address equality for
517 constant evaluation. Call __equal for targets that require the
518 definition to be non-inline.
519 * testsuite/18_support/type_info/constexpr.cc: New test.
521 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
523 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
524 class and virtual functions as 'final'.
525 (io_category_instance): Use constinit union to make the object
527 * src/c++11/future.cc (future_error_category): Define class and
528 virtual functions as 'final'.
529 (future_category_instance): Use constinit union.
531 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
533 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
534 versioned namespace from the type name that is printed.
536 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
538 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
539 printer for std::regex NFA states.
541 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
543 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
544 placeholders in comments.
545 * testsuite/23_containers/forward_list/operations/2.cc:
547 * testsuite/23_containers/forward_list/operations/3.cc:
549 * testsuite/23_containers/forward_list/operations/4.cc:
551 * testsuite/23_containers/forward_list/operations/5.cc:
553 * testsuite/23_containers/forward_list/operations/6.cc:
555 * testsuite/23_containers/forward_list/operations/7.cc:
558 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
561 * include/bits/stl_deque.h (operator-): Do not use 0 as null
564 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
566 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
567 Use std::_Construct for construct.
569 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
572 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
573 * doc/html/faq.html: Regenerate.
575 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
577 * include/bits/regex.h (__regex_algo_impl): Change __policy and
578 __match_mode template parameters to be function parameters.
579 (regex_match, regex_search): Pass policy and match mode as
581 * include/bits/regex.tcc (__regex_algo_impl): Change template
582 parameters to function parameters.
583 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
584 'if constexpr' for conditions using template parameters.
585 (_RegexTranslator): Likewise.
586 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
588 * testsuite/util/testsuite_regex.h (regex_match_debug)
589 (regex_search_debug): Move template arguments to function
592 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
594 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
595 results even if the match failed.
597 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
599 * include/bits/regex_compiler.tcc: Adjust all calls to
601 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
603 * include/bits/regex_scanner.tcc: Likewise.
604 * src/c++11/regex.cc (desc): New helper function.
605 (regex_error::regex_error(error_type)): Use desc to get a string
606 corresponding to the error code.
609 Copyright (C) 2022 Free Software Foundation, Inc.
611 Copying and distribution of this file, with or without modification,
612 are permitted in any medium without royalty provided the copyright
613 notice and this notice are preserved.