]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
9248ee41
GA
12022-01-15 Matthias Kretz <m.kretz@gsi.de>
2
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
14 for a bad base class.
15 (many): Either add __odr_helper template parameter or mark as
16 always_inline.
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
26 template parameter.
27 * include/experimental/bits/simd_ppc.h: Ditto.
28 * include/experimental/bits/simd_x86.h: Ditto.
29
617db51d
GA
302022-01-14 Uroš Bizjak <ubizjak@gmail.com>
31
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.
35
362022-01-14 Jonathan Wakely <jwakely@redhat.com>
37
38 PR libstdc++/91260
39 PR libstdc++/91383
40 PR libstdc++/95065
41 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
42 attribute.
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
55 attributes.
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
59 deprecated attribute.
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):
63 Likewise.
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
70 classes.
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
81 dg-warning.
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:
85 Likewise.
86 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
87 Likewise.
88 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
89 Likewise.
90 * testsuite/20_util/reference_wrapper/24803.cc:
91 Likewise.
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:
100 Likewise.
101 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
102 Likewise.
103 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
104 Likewise.
105 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
106 Likewise.
107 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
108 Likewise.
109 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
110 Likewise.
111 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
112 Likewise.
113 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
114 Likewise.
115 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
116 Likewise.
117 * testsuite/25_algorithms/copy/34595.cc:
118 Likewise.
119 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
120 base class.
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:
124 Likewise.
125 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
126 Likewise.
127 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
128 Likewise.
129 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
130 Likewise.
131 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
132 Likewise.
133 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
134 Likewise.
135 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
136 Likewise.
137 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
138 Likewise.
139 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
140 Likewise.
141 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
142 Likewise.
143 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
144 Likewise.
145 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
146 Likewise.
147 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
148 Likewise.
149 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
150 Likewise.
151 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
152 Likewise.
153 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
154 Likewise.
155 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
156 Likewise.
157 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
158 Likewise.
159 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
160 Likewise.
161 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
162 Likewise.
163 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
164 Likewise.
165 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
166 Likewise.
167 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
168 Likewise.
169 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
170 Likewise.
171 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
172 Likewise.
173 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
174 Likewise.
175 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
176 Likewise.
177 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
178 Likewise.
179 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
180 Likewise.
181 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
182 Likewise.
183 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
184 Likewise.
185 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
186 Likewise.
187 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
188 Likewise.
189 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
190 Likewise.
191 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
192 Likewise.
193 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
194 Likewise.
195 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
196 Likewise.
197 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
198 Likewise.
199 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
200 Likewise.
201 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
202 Likewise.
203 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
204 Likewise.
205 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
206 Likewise.
207 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
208 Likewise.
209 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
210 Likewise.
211 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
212 Likewise.
213 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
214 Likewise.
215 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
216 Likewise.
217 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
218 dg-warning.
219 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
220 Likewise.
221 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
222 Likewise.
223 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
224 Disable deprecated warnings.
225 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
226 Likewise.
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.
231
2322022-01-14 Jonathan Wakely <jwakely@redhat.com>
233
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):
240 New macro.
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
250 type.
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
254 expected errors.
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.
260
2612022-01-14 Jonathan Wakely <jwakely@redhat.com>
262
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.
267
2682022-01-14 Jonathan Wakely <jwakely@redhat.com>
269
270 PR libstdc++/103992
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.
275
2762022-01-14 Jonathan Wakely <jwakely@redhat.com>
277
278 * doc/xml/manual/status_cxx2011.xml: Document new tokens
279 accepted by std::random_device constructor.
280 * doc/html/manual/status.html: Regenerate.
281
02a8a01b
GA
2822022-01-12 Patrick Palka <ppalka@redhat.com>
283
284 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
285 directive.
286
2872022-01-12 Patrick Palka <ppalka@redhat.com>
288
289 PR libstdc++/103955
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
293 two checks.
294 (__floating_to_chars_precision): Avoid overflow in bounds checks
295 similarly.
296 * testsuite/20_util/to_chars/103955.cc: New test.
297
01a254e3
GA
2982022-01-11 Jonathan Wakely <jwakely@redhat.com>
299
300 PR libstdc++/103726
301 * include/Makefile.am: Install <source_location> for
302 freestanding.
303 * include/Makefile.in: Regenerate.
304 * include/std/version (__cpp_lib_source_location): Define for
305 freestanding.
306
3072022-01-11 Jonathan Wakely <jwakely@redhat.com>
308
309 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
310 Add neoxcept (LWG 3593).
311
3122022-01-11 Jonathan Wakely <jwakely@redhat.com>
313
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.
318
3192022-01-11 Jonathan Wakely <jwakely@redhat.com>
320
321 PR libstdc++/103726
322 * include/Makefile.am: Install <coroutine> for freestanding.
323 * include/Makefile.in: Regenerate.
324 * include/std/coroutine: Adjust headers and preprocessor
325 conditions.
326 (__coroutine_traits_impl): Use concepts when available.
327 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
328
3292022-01-11 Jonathan Wakely <jwakely@redhat.com>
330
331 * include/std/ostream (operator<<(basic_ostream&, charT)):
332 Use unformatted input if no padding is needed.
333 (operator<<(basic_ostream<char>&, char)): Likewise.
334
3352022-01-11 Jonathan Wakely <jwakely@redhat.com>
336
337 PR libstdc++/103891
338 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
339 Define.
340 * include/std/variant (__cpp_lib_variant): Only define C++20
341 value when the compiler is known to support conditionally
342 trivial destructors.
343 * include/std/version (__cpp_lib_variant): Likewise.
344
3452022-01-11 Jonathan Wakely <jwakely@redhat.com>
346
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.
352
d9450aa0
GA
3532022-01-10 Jakub Jelinek <jakub@redhat.com>
354
355 PR libstdc++/77760
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
367 at the end.
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
372 pass around state.
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.
391
3922022-01-10 Jonathan Wakely <jwakely@redhat.com>
393
394 PR libstdc++/103866
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
400 freestanding builds.
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.
417
4182022-01-10 Jonathan Wakely <jwakely@redhat.com>
419
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.
425
4262022-01-10 Jonathan Wakely <jwakely@redhat.com>
427
428 * doc/xml/manual/using.xml: Update documentation around default
429 -std option.
430 * doc/html/*: Regenerate.
431
4322022-01-10 Jonathan Wakely <jwakely@redhat.com>
433
434 PR libstdc++/100017
435 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
436 * src/c++17/Makefile.in: Regenerate.
437
3a5702df
GA
4382022-01-09 Sandra Loosemore <sandra@codesourcery.com>
439
440 * testsuite/18_support/type_info/constexpr.cc: Add explicit
441 -fdelete-null-pointer-checks option.
442
11ce8d04
GA
4432022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
444 Jonathan Wakely <jwakely@redhat.com>
445
446 PR libstdc++/103853
447 * include/bits/forward_list.tcc (forward_list::merge): Check for
448 self-merge.
449 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
450
4512022-01-06 Jonathan Wakely <jwakely@redhat.com>
452
453 * include/bits/regex.h (basic_regex, match_results): Qualify
454 name in friend declaration, to work around Clang bug.
455
4562022-01-06 Jonathan Wakely <jwakely@redhat.com>
457
458 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
459
4602022-01-06 Jonathan Wakely <jwakely@redhat.com>
461
462 PR libstdc++/103911
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.
468
0fbefa25
GA
4692022-01-05 François Dumont <fdumont@gcc.gnu.org>
470
471 PR libstdc++/68303
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.
495
4962022-01-05 Jonathan Wakely <jwakely@redhat.com>
497
498 PR libstdc++/103919
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)):
502 Likewise.
503 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
504
5052022-01-05 Jonathan Wakely <jwakely@redhat.com>
506
507 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
508 ARM EABI.
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
512 is emitted.
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.
520
5212022-01-05 Jonathan Wakely <jwakely@redhat.com>
522
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
526 immortal.
527 * src/c++11/future.cc (future_error_category): Define class and
528 virtual functions as 'final'.
529 (future_category_instance): Use constinit union.
530
5312022-01-05 Jonathan Wakely <jwakely@redhat.com>
532
533 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
534 versioned namespace from the type name that is printed.
535
5362022-01-05 Jonathan Wakely <jwakely@redhat.com>
537
538 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
539 printer for std::regex NFA states.
540
5412022-01-05 Jonathan Wakely <jwakely@redhat.com>
542
543 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
544 placeholders in comments.
545 * testsuite/23_containers/forward_list/operations/2.cc:
546 Likewise.
547 * testsuite/23_containers/forward_list/operations/3.cc:
548 Likewise.
549 * testsuite/23_containers/forward_list/operations/4.cc:
550 Likewise.
551 * testsuite/23_containers/forward_list/operations/5.cc:
552 Likewise.
553 * testsuite/23_containers/forward_list/operations/6.cc:
554 Likewise.
555 * testsuite/23_containers/forward_list/operations/7.cc:
556 Likewise.
557
5582022-01-05 Jonathan Wakely <jwakely@redhat.com>
559
560 PR libstdc++/103848
561 * include/bits/stl_deque.h (operator-): Do not use 0 as null
562 pointer constant.
563
5642022-01-05 Jonathan Wakely <jwakely@redhat.com>
565
566 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
567 Use std::_Construct for construct.
568
5692022-01-05 Jonathan Wakely <jwakely@redhat.com>
570
571 PR libstdc++/103877
572 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
573 * doc/html/faq.html: Regenerate.
574
5752022-01-05 Jonathan Wakely <jwakely@redhat.com>
576
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
580 function arguments.
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):
587 Likewise.
588 * testsuite/util/testsuite_regex.h (regex_match_debug)
589 (regex_search_debug): Move template arguments to function
590 arguments.
591
5922022-01-05 Jonathan Wakely <jwakely@redhat.com>
593
594 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
595 results even if the match failed.
596
5972022-01-05 Jonathan Wakely <jwakely@redhat.com>
598
599 * include/bits/regex_compiler.tcc: Adjust all calls to
600 __throw_regex_error.
601 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
602 attribute.
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.
607
b4df5e92 608\f
6123f29a 609Copyright (C) 2022 Free Software Foundation, Inc.
b4df5e92
JW
610
611Copying and distribution of this file, with or without modification,
612are permitted in any medium without royalty provided the copyright
613notice and this notice are preserved.