]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2022-01-17 Patrick Palka <ppalka@redhat.com>
2
3 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4 Conditionally define, and use it to conditionally include
5 fast_float.
6 (from_chars): Use fast_float for float and double when
7 USE_LIB_FAST_FLOAT.
8
9 2022-01-17 Patrick Palka <ppalka@redhat.com>
10
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
14 modify 'value'.
15
16 2022-01-17 Patrick Palka <ppalka@redhat.com>
17
18 * src/c++17/fast_float/LOCAL_PATCHES: Update.
19 * src/c++17/fast_float/fast_float.h: Apply local modifications.
20
21 2022-01-17 Patrick Palka <ppalka@redhat.com>
22
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.
29
30 2022-01-17 Patrick Palka <ppalka@redhat.com>
31
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.
39
40 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
41
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):
69 New proc.
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.
73
74 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
75
76 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
77 names.
78 * doc/html/manual/status.html: Regenerate.
79
80 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
81
82 PR libstdc++/103650
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.
86
87 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
88
89 * include/experimental/bits/simd.h (__floating_point_flags): Do
90 not rely on the presence of the math_errhandling macro.
91
92 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
93
94 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
95 to qualified-id for dependent type.
96
97 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
98
99 * doc/xml/manual/status_cxx2020.xml: Update.
100 * doc/html/manual/status.html: Regenerate.
101
102 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
103 Thomas Rodgers <trodgers@redhat.com>
104
105 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
106 New macro.
107 (_Sp_atomic): New class template.
108 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
109 specializations.
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
114 test.
115 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
116
117 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
118
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
132 always_inline.
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
142 template parameter.
143 * include/experimental/bits/simd_ppc.h: Ditto.
144 * include/experimental/bits/simd_x86.h: Ditto.
145
146 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
147
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.
151
152 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
153
154 PR libstdc++/91260
155 PR libstdc++/91383
156 PR libstdc++/95065
157 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
158 attribute.
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
171 attributes.
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):
179 Likewise.
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
186 classes.
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
197 dg-warning.
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:
201 Likewise.
202 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
203 Likewise.
204 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
205 Likewise.
206 * testsuite/20_util/reference_wrapper/24803.cc:
207 Likewise.
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:
216 Likewise.
217 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
218 Likewise.
219 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
220 Likewise.
221 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
222 Likewise.
223 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
224 Likewise.
225 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
226 Likewise.
227 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
228 Likewise.
229 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
230 Likewise.
231 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
232 Likewise.
233 * testsuite/25_algorithms/copy/34595.cc:
234 Likewise.
235 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
236 base class.
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:
240 Likewise.
241 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
242 Likewise.
243 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
244 Likewise.
245 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
246 Likewise.
247 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
248 Likewise.
249 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
250 Likewise.
251 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
252 Likewise.
253 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
254 Likewise.
255 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
256 Likewise.
257 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
258 Likewise.
259 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
260 Likewise.
261 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
262 Likewise.
263 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
264 Likewise.
265 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
266 Likewise.
267 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
268 Likewise.
269 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
270 Likewise.
271 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
272 Likewise.
273 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
274 Likewise.
275 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
276 Likewise.
277 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
278 Likewise.
279 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
280 Likewise.
281 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
282 Likewise.
283 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
284 Likewise.
285 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
286 Likewise.
287 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
288 Likewise.
289 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
290 Likewise.
291 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
292 Likewise.
293 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
294 Likewise.
295 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
296 Likewise.
297 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
298 Likewise.
299 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
300 Likewise.
301 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
302 Likewise.
303 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
304 Likewise.
305 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
306 Likewise.
307 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
308 Likewise.
309 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
310 Likewise.
311 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
312 Likewise.
313 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
314 Likewise.
315 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
316 Likewise.
317 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
318 Likewise.
319 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
320 Likewise.
321 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
322 Likewise.
323 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
324 Likewise.
325 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
326 Likewise.
327 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
328 Likewise.
329 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
330 Likewise.
331 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
332 Likewise.
333 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
334 dg-warning.
335 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
336 Likewise.
337 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
338 Likewise.
339 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
340 Disable deprecated warnings.
341 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
342 Likewise.
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.
347
348 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
349
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):
356 New macro.
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
366 type.
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
370 expected errors.
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.
376
377 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
378
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.
383
384 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
385
386 PR libstdc++/103992
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.
391
392 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
393
394 * doc/xml/manual/status_cxx2011.xml: Document new tokens
395 accepted by std::random_device constructor.
396 * doc/html/manual/status.html: Regenerate.
397
398 2022-01-12 Patrick Palka <ppalka@redhat.com>
399
400 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
401 directive.
402
403 2022-01-12 Patrick Palka <ppalka@redhat.com>
404
405 PR libstdc++/103955
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
409 two checks.
410 (__floating_to_chars_precision): Avoid overflow in bounds checks
411 similarly.
412 * testsuite/20_util/to_chars/103955.cc: New test.
413
414 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
415
416 PR libstdc++/103726
417 * include/Makefile.am: Install <source_location> for
418 freestanding.
419 * include/Makefile.in: Regenerate.
420 * include/std/version (__cpp_lib_source_location): Define for
421 freestanding.
422
423 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
424
425 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
426 Add neoxcept (LWG 3593).
427
428 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
429
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.
434
435 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
436
437 PR libstdc++/103726
438 * include/Makefile.am: Install <coroutine> for freestanding.
439 * include/Makefile.in: Regenerate.
440 * include/std/coroutine: Adjust headers and preprocessor
441 conditions.
442 (__coroutine_traits_impl): Use concepts when available.
443 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
444
445 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
446
447 * include/std/ostream (operator<<(basic_ostream&, charT)):
448 Use unformatted input if no padding is needed.
449 (operator<<(basic_ostream<char>&, char)): Likewise.
450
451 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
452
453 PR libstdc++/103891
454 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
455 Define.
456 * include/std/variant (__cpp_lib_variant): Only define C++20
457 value when the compiler is known to support conditionally
458 trivial destructors.
459 * include/std/version (__cpp_lib_variant): Likewise.
460
461 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
462
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.
468
469 2022-01-10 Jakub Jelinek <jakub@redhat.com>
470
471 PR libstdc++/77760
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
483 at the end.
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
488 pass around state.
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.
507
508 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
509
510 PR libstdc++/103866
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
516 freestanding builds.
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.
533
534 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
535
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.
541
542 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
543
544 * doc/xml/manual/using.xml: Update documentation around default
545 -std option.
546 * doc/html/*: Regenerate.
547
548 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
549
550 PR libstdc++/100017
551 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
552 * src/c++17/Makefile.in: Regenerate.
553
554 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
555
556 * testsuite/18_support/type_info/constexpr.cc: Add explicit
557 -fdelete-null-pointer-checks option.
558
559 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
560 Jonathan Wakely <jwakely@redhat.com>
561
562 PR libstdc++/103853
563 * include/bits/forward_list.tcc (forward_list::merge): Check for
564 self-merge.
565 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
566
567 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
568
569 * include/bits/regex.h (basic_regex, match_results): Qualify
570 name in friend declaration, to work around Clang bug.
571
572 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
573
574 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
575
576 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
577
578 PR libstdc++/103911
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.
584
585 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
586
587 PR libstdc++/68303
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.
611
612 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
613
614 PR libstdc++/103919
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)):
618 Likewise.
619 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
620
621 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
622
623 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
624 ARM EABI.
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
628 is emitted.
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.
636
637 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
638
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
642 immortal.
643 * src/c++11/future.cc (future_error_category): Define class and
644 virtual functions as 'final'.
645 (future_category_instance): Use constinit union.
646
647 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
648
649 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
650 versioned namespace from the type name that is printed.
651
652 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
653
654 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
655 printer for std::regex NFA states.
656
657 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
658
659 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
660 placeholders in comments.
661 * testsuite/23_containers/forward_list/operations/2.cc:
662 Likewise.
663 * testsuite/23_containers/forward_list/operations/3.cc:
664 Likewise.
665 * testsuite/23_containers/forward_list/operations/4.cc:
666 Likewise.
667 * testsuite/23_containers/forward_list/operations/5.cc:
668 Likewise.
669 * testsuite/23_containers/forward_list/operations/6.cc:
670 Likewise.
671 * testsuite/23_containers/forward_list/operations/7.cc:
672 Likewise.
673
674 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
675
676 PR libstdc++/103848
677 * include/bits/stl_deque.h (operator-): Do not use 0 as null
678 pointer constant.
679
680 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
681
682 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
683 Use std::_Construct for construct.
684
685 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
686
687 PR libstdc++/103877
688 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
689 * doc/html/faq.html: Regenerate.
690
691 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
692
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
696 function arguments.
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):
703 Likewise.
704 * testsuite/util/testsuite_regex.h (regex_match_debug)
705 (regex_search_debug): Move template arguments to function
706 arguments.
707
708 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
709
710 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
711 results even if the match failed.
712
713 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
714
715 * include/bits/regex_compiler.tcc: Adjust all calls to
716 __throw_regex_error.
717 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
718 attribute.
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.
723
724 \f
725 Copyright (C) 2022 Free Software Foundation, Inc.
726
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.