]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2
3 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
4 Print floating-point durations correctly.
5 (StdChronoTimePointPrinter): Support printing only the value,
6 not the type name. Uncomment handling for known clocks.
7 (StdChronoZonedTimePrinter): Remove type names from output.
8 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
9 (StdChronoTimeZonePrinter): Add equals sign to output.
10 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
11
12 2023-05-05 Alexandre Oliva <oliva@adacore.com>
13
14 * testsuite/20_util/from_chars/4.cc: Skip long double test06
15 on aarch64-vxworks.
16 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
17 aarch64-vxworks.
18
19 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
20
21 * doc/xml/manual/abi.xml (abi.versioning.history): Document
22 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
23 * doc/html/manual/abi.html: Regenerate.
24
25 2023-05-04 Florian Weimer <fweimer@redhat.com>
26
27 * doc/xml/manual/abi.xml (abi.versioning.history): Add
28 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
29 libgcc_s.
30
31 2023-05-03 Jakub Jelinek <jakub@redhat.com>
32
33 * src/c++17/floating_from_chars.cc
34 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
35 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
36 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
37 _ZSt8to_charsPcS_u9__ieee128.
38 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
39 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
40 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
41 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
42 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
43
44 2023-05-03 Jakub Jelinek <jakub@redhat.com>
45
46 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
47 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
48 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
49 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
50 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
51 versions.
52 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
53 file.
54
55 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
56 Jonathan Wakely <jwakely@redhat.com>
57
58 PR libstdc++/109703
59 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
60 Initialize _M_string_length.
61
62 2023-05-02 Jakub Jelinek <jakub@redhat.com>
63
64 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
65 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
66 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
67 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
68 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
69 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
70 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
71 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
72
73 2023-05-02 Jakub Jelinek <jakub@redhat.com>
74
75 PR libstdc++/109694
76 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
77 -Wattribute-alias.
78
79 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
80
81 * include/bits/random.h (gamma_distribution): Add to the right
82 doxygen group.
83 (discrete_distribution, piecewise_constant_distribution)
84 (piecewise_linear_distribution): Create a new doxygen group and
85 fix the incomplete doxygen comments.
86 * include/bits/uniform_int_dist.h (uniform_int_distribution):
87 Add to doxygen group.
88
89 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
90
91 * include/bits/uses_allocator.h: Add missing @file comment.
92 * include/bits/regex.tcc: Remove stray doxygen comments.
93 * include/experimental/memory_resource: Likewise.
94 * include/std/bit: Tweak doxygen @cond comments.
95 * include/std/expected: Likewise.
96 * include/std/numbers: Likewise.
97
98 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
99
100 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
101 from header paths.
102
103 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
104
105 * include/bits/move.h: Simplify opening/closing namespace std.
106
107 2023-04-28 Jakub Jelinek <jakub@redhat.com>
108
109 PR libstdc++/108969
110 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
111 _ZSt21ios_base_library_initv.
112 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
113 symver and make it the latestp.
114 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
115 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
116 * include/std/iostream: If init_priority attribute is supported
117 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
118 symbol into the object.
119 * configure: Regenerated.
120
121 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
122
123 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
124 * include/std/format: Likewise.
125
126 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
127
128 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
129 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
130
131 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
132
133 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
134 HTML docs.
135 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
136 from doxygen docs.
137 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
138 Likewise.
139 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
140 Likewise.
141 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
142 Likewise.
143 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
144 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
145 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
146 (_DEFINE_BINARY_OPERATOR): Likewise.
147
148 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
149
150 * include/bits/memory_resource.h: Improve doxygen comments.
151 * include/std/memory_resource: Likewise.
152
153 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
154
155 PR libstdc++/40380
156 * include/bits/basic_string.h: Improve doxygen comments.
157 * include/bits/cow_string.h: Likewise.
158 * include/bits/forward_list.h: Likewise.
159 * include/bits/fs_dir.h: Likewise.
160 * include/bits/fs_path.h: Likewise.
161 * include/bits/quoted_string.h: Likewise.
162 * include/bits/stl_bvector.h: Likewise.
163 * include/bits/stl_map.h: Likewise.
164 * include/bits/stl_multimap.h: Likewise.
165 * include/bits/stl_multiset.h: Likewise.
166 * include/bits/stl_set.h: Likewise.
167 * include/bits/stl_vector.h: Likewise.
168 * include/bits/unordered_map.h: Likewise.
169 * include/bits/unordered_set.h: Likewise.
170 * include/std/filesystem: Likewise.
171 * include/std/iomanip: Likewise.
172
173 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
174
175 PR libstdc++/105081
176 * src/c++11/random.cc (__throw_syserr): New function.
177 (random_device::_M_init, random_device::_M_init_pretr1): Use new
178 function for bad tokens.
179 (random_device::_M_getval): Use new function for read errors.
180 * testsuite/util/testsuite_random.h (random_device_available):
181 Change catch handler to use std::system_error.
182
183 2023-04-24 Patrick Palka <ppalka@redhat.com>
184
185 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
186 Fix propagation of sign bit.
187 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
188 non-standard 'signed typedef-name'. Add some compile-time tests
189 for right-shifting a negative __max_diff_type value by more than
190 one.
191
192 2023-04-19 Patrick Palka <ppalka@redhat.com>
193 Jonathan Wakely <jwakely@redhat.com>
194
195 PR c++/100157
196 * include/bits/utility.h (_Nth_type): Conditionally define in
197 terms of __type_pack_element if available.
198 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
199 additional errors from the new built-in.
200
201 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
202
203 Revert:
204 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
205
206 PR libstdc++/108969
207 * src/Makefile.am: Move globals_io.cc to here.
208 * src/Makefile.in: Regenerate.
209 * src/c++98/Makefile.am: Remove globals_io.cc from here.
210 * src/c++98/Makefile.in: Regenerate.
211 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
212 symbol name and then export with GLIBCXX_3.4.31 symver.
213 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
214 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
215 Regenerate.
216 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
217 Regenerate.
218 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
219 Regenerate.
220 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
221 Regenerate.
222 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
223 Regenerate.
224 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
225 Regenerate.
226 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
227 Regenerate.
228 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
229 Regenerate.
230 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
231
232 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
233
234 Revert:
235 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
236
237 PR libstdc++/108969
238 * config/abi/pre/gnu.ver: Fix preprocessor condition.
239
240 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
241
242 * doc/xml/manual/extensions.xml: Fix example to declare and
243 qualify std::free, and use NULL instead of 0.
244 * doc/html/manual/ext_demangling.html: Regenerate.
245 * libsupc++/cxxabi.h: Adjust doxygen comments.
246
247 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
248
249 PR libstdc++/108969
250 * config/abi/pre/gnu.ver: Fix preprocessor condition.
251
252 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
253
254 PR libstdc++/108969
255 * src/Makefile.am: Move globals_io.cc to here.
256 * src/Makefile.in: Regenerate.
257 * src/c++98/Makefile.am: Remove globals_io.cc from here.
258 * src/c++98/Makefile.in: Regenerate.
259 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
260 symbol name and then export with GLIBCXX_3.4.31 symver.
261 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
262 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
263 Regenerate.
264 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
265 Regenerate.
266 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
267 Regenerate.
268 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
269 Regenerate.
270 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
271 Regenerate.
272 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
273 Regenerate.
274 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
275 Regenerate.
276 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
277 Regenerate.
278 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
279
280 2023-04-18 Patrick Palka <ppalka@redhat.com>
281
282 PR libstdc++/108827
283 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
284 for C++23.
285 * include/std/ranges (range_adaptor_closure): Define for C++23.
286 * include/std/version (__cpp_lib_ranges): Bump value for
287 C++23.
288 * testsuite/std/ranges/version_c++23.cc: Bump expected value
289 of __cpp_lib_ranges.
290 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
291
292 2023-04-18 Patrick Palka <ppalka@redhat.com>
293
294 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
295 Define for C++23.
296 (__cpp_lib_ranges_iota): Likewise.
297 (__cpp_lib_ranges_find_last): Likewise.
298 (__cpp_lib_fold): Rename to ...
299 (__cpp_lib_ranges_fold): ... this.
300 * include/std/version: As above.
301 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
302 renaming __cpp_lib_fold.
303 * testsuite/std/ranges/version_c++23.cc: Verify values
304 of the above feature-test macros.
305
306 2023-04-18 Patrick Palka <ppalka@redhat.com>
307
308 PR libstdc++/109525
309 * include/std/ranges (views::_AsConst::operator()): Add
310 missing const to constant_range test.
311 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
312 Improve formatting. Adjust expected type of v2.
313 (test03): New test.
314
315 2023-04-14 Patrick Palka <ppalka@redhat.com>
316
317 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
318 (const_sentinel_t): Likewise.
319 (range_const_reference_t): Likewise.
320 (constant_range): Likewise.
321 (__cust_access::__possibly_const_range): Likewise, replacing ...
322 (__cust_access::__as_const): ... this.
323 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
324 (__cust_access::_CEnd::operator()): Likewise.
325 (__cust_access::_CRBegin::operator()): Likewise.
326 (__cust_access::_CREnd::operator()): Likewise.
327 (__cust_access::_CData::operator()): Likewise.
328 * include/bits/ranges_util.h (ranges::__detail::__different_from):
329 Make it an alias of std::__detail::__different_from.
330 (view_interface::cbegin): Define for C++23.
331 (view_interface::cend): Likewise.
332 * include/bits/stl_iterator.h (__detail::__different_from): Define.
333 (iter_const_reference_t): Define for C++23.
334 (__detail::__constant_iterator): Likewise.
335 (__detail::__is_const_iterator): Likewise.
336 (__detail::__not_a_const_iterator): Likewise.
337 (__detail::__iter_const_rvalue_reference_t): Likewise.
338 (__detail::__basic_const_iter_cat):: Likewise.
339 (const_iterator): Likewise.
340 (__detail::__const_sentinel): Likewise.
341 (const_sentinel): Likewise.
342 (basic_const_iterator): Likewise.
343 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
344 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
345 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
346 Likewise.
347 (make_const_iterator): Define for C++23.
348 (make_const_sentinel): Likewise.
349 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
350 (as_const_view): Likewise.
351 (enable_borrowed_range<as_const_view>): Likewise.
352 (views::__detail::__is_ref_view): Likewise.
353 (views::__detail::__can_is_const_view): Likewise.
354 (views::_AsConst, views::as_const): Likewise.
355 * include/std/span (span::const_iterator): Likewise.
356 (span::const_reverse_iterator): Likewise.
357 (span::cbegin): Likewise.
358 (span::cend): Likewise.
359 (span::crbegin): Likewise.
360 (span::crend): Likewise.
361 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
362 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
363 behave independently of C++20 vs C++23.
364 * testsuite/std/ranges/version_c++23.cc: Verify value of
365 __cpp_lib_ranges_as_const macro.
366 * testsuite/24_iterators/const_iterator/1.cc: New test.
367 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
368
369 2023-04-14 Patrick Palka <ppalka@redhat.com>
370
371 * include/bits/ranges_base.h (__cust_access::__as_const)
372 (__cust_access::_CBegin, __cust::cbegin)
373 (__cust_access::_CEnd, __cust::cend)
374 (__cust_access::_CRBegin, __cust::crbegin)
375 (__cust_access::_CREnd, __cust::crend)
376 (__cust_access::_CData, __cust::cdata): Move down definitions to
377 shortly after the definition of input_range.
378
379 2023-04-14 Patrick Palka <ppalka@redhat.com>
380
381 * include/bits/ranges_algo.h: Include <optional> for C++23.
382 (__cpp_lib_fold): Define for C++23.
383 (in_value_result): Likewise.
384 (__detail::__flipped): Likewise.
385 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
386 (__detail::__indirectly_binary_left_foldable): Likewise.
387 (___detail:__indirectly_binary_right_foldable): Likewise.
388 (fold_left_with_iter_result): Likewise.
389 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
390 (__fold_left_fn, fold_left): Likewise.
391 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
392 Likewise.
393 (__fold_left_first_fn, fold_left_first): Likewise.
394 (__fold_right_fn, fold_right): Likewise.
395 (__fold_right_last_fn, fold_right_last): Likewise.
396 * include/std/version (__cpp_lib_fold): Likewise.
397 * testsuite/25_algorithms/fold_left/1.cc: New test.
398 * testsuite/25_algorithms/fold_right/1.cc: New test.
399
400 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
401
402 * include/std/format (formatter): Add comment to deleted default
403 constructor of primary template.
404 (_Checking_scanner): Add static_assert.
405
406 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
407
408 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
409 * doc/html/*: Regenerate.
410
411 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
412
413 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
414 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
415 namespace to avoid clashing with libc struct.
416 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
417 Likewise.
418 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
419 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
420 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
421 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
422 * testsuite/experimental/synchronized_value.cc: Require gthreads
423 and add missing option for pthreads targets.
424
425 2023-04-12 Patrick Palka <ppalka@redhat.com>
426
427 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
428 for C++23.
429 (__detail::__range_with_movable_reference): Likewise.
430 (enumerate_view): Likewise.
431 (enumerate_view::_Iterator): Likewise.
432 (enumerate_view::_Sentinel): Likewise.
433 (views::__detail::__can_enumerate_view): Likewise.
434 (views::_Enumerate, views::enumerate): Likewise.
435 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
436 * testsuite/std/ranges/version_c++23.cc: Verify value of
437 __cpp_lib_ranges_enumerate.
438 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
439
440 2023-04-12 Patrick Palka <ppalka@redhat.com>
441
442 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
443 Propagate _M_trailing_empty in the const-converting constructor
444 as per LWG 3904.
445 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
446 assertion.
447 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
448
449 2023-04-12 Patrick Palka <ppalka@redhat.com>
450
451 * src/c++17/floating_from_chars.cc: Include <algorithm>,
452 <iterator>, <limits> and <cstdint>.
453
454 2023-04-12 Patrick Palka <ppalka@redhat.com>
455
456 PR libstdc++/108291
457 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
458 parameter types of the lambda wrapper passed to adjacent_find.
459 (chunk_by_view::_M_find_prev): Likewise.
460 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
461 New tests.
462
463 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
464
465 PR libstdc++/109482
466 * include/experimental/internet (basic_endpoint::basic_endpoint()):
467 Ensure that the required union members are active. Only define
468 as constexpr for C++20 and later.
469 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
470 Likewise.
471 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
472 check constexpr default constructor for C++20 and later.
473 * testsuite/experimental/net/internet/endpoint/extensible.cc:
474 Likewise.
475
476 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
477
478 * src/c++20/tzdata.zi: Import new file from 2023c release.
479
480 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
481
482 * include/precompiled/stdc++.h (C++17): Don't double-include
483 <charconv>, once with wrong conditions.
484 * testsuite/18_support/96817.cc: Require hosted.
485 * testsuite/18_support/bad_exception/59392.cc: Ditto.
486 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
487 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
488 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
489 Ditto.
490
491 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
492
493 * include/bits/c++config: When __STDC_HOSTED__ is zero,
494 disable _GLIBCXX_DEBUG and, if it was set, enable
495 _GLIBCXX_ASSERTIONS.
496 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
497 Include <bits/c++config.h> when determining whether debug is
498 set, in order to inherit the logic from above
499
500 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
501
502 * testsuite/17_intro/versionconflict.cc: New test.
503 * include/std/version: Allow disabling the system_header pragma
504 via _GLIBCXX_TESTING_SYSHDR.
505
506 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
507
508 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
509 Synchronize the definition block with...
510 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
511 ... this one here. Also define the 202202L value, rather than
512 leaving it up to purely unique_ptr.h, so that the value is
513 synchronized across all headers.
514 (__gnu_debug::_Safe_iterator_base): Move into new conditional
515 block.
516 * include/std/memory (__cpp_lib_atomic_value_initialization):
517 Define on freestanding under the same conditions as in
518 atomic_base.h.
519 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
520 Also define on freestanding.
521 (__cpp_lib_to_chars): Ditto.
522 (__cpp_lib_gcd): Ditto.
523 (__cpp_lib_gcd_lcm): Ditto.
524 (__cpp_lib_raw_memory_algorithms): Ditto.
525 (__cpp_lib_array_constexpr): Ditto.
526 (__cpp_lib_nonmember_container_access): Ditto.
527 (__cpp_lib_clamp): Ditto.
528 (__cpp_lib_constexpr_char_traits): Ditto.
529 (__cpp_lib_constexpr_string): Ditto.
530 (__cpp_lib_sample): Ditto.
531 (__cpp_lib_lcm): Ditto.
532 (__cpp_lib_constexpr_iterator): Ditto.
533 (__cpp_lib_constexpr_char_traits): Ditto.
534 (__cpp_lib_interpolate): Ditto.
535 (__cpp_lib_constexpr_utility): Ditto.
536 (__cpp_lib_shift): Ditto.
537 (__cpp_lib_ranges): Ditto.
538 (__cpp_lib_move_iterator_concept): Ditto.
539 (__cpp_lib_constexpr_numeric): Ditto.
540 (__cpp_lib_constexpr_functional): Ditto.
541 (__cpp_lib_constexpr_algorithms): Ditto.
542 (__cpp_lib_constexpr_tuple): Ditto.
543 (__cpp_lib_constexpr_memory): Ditto.
544
545 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
546
547 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
548 timeout factor on hppa*-*-*.
549
550 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
551
552 * include/bits/regex.h (sub_match::swap): New function.
553 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
554
555 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
556
557 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
558 example program.
559 * doc/html/manual/ext_demangling.html: Regenerate.
560
561 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
562
563 PR tree-optimization/107087
564 * include/bits/cow_string.h (basic_string::size()): Add
565 optimizer hint that _S_empty_rep()._M_length is always zero.
566 (basic_string::length()): Call size().
567
568 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
569
570 PR libstdc++/109339
571 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
572 Add attribute access with access-mode 'none'.
573 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
574
575 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
576
577 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
578 Revert change from member function to data member. Fix for
579 constant evaluation by detecting which union member is active.
580 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
581 flag.
582
583 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
584
585 PR libstdc++/109242
586 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
587 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
588
589 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
590
591 * include/experimental/internet (ip::make_address): Implement
592 missing overload.
593 (ip::address_v4::broadcast()): Avoid undefined shift.
594 (ip::basic_endpoint): Fix member functions for constexpr.
595 (ip::basic_endpoint::_M_is_v6): Replace member function with
596 data member, adjust member functions using it.
597 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
598 content.
599 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
600 constexpr checks to work in C++14.
601 * testsuite/experimental/net/internet/address/v4/creation.cc:
602 Likewise.
603 * testsuite/experimental/net/internet/endpoint/cons.cc:
604 Likewise.
605 * testsuite/experimental/net/internet/network/v4/cons.cc:
606 Likewise.
607 * testsuite/experimental/net/internet/network/v4/members.cc:
608 Likewise.
609 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
610
611 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
612
613 * include/std/expected (expected::value() &): Use const lvalue
614 for unex member passed to bad_expected_access constructor, as
615 per LWG 3843.
616
617 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
618
619 PR libstdc++/109340
620 * include/std/expected (expected::transform): Use
621 std::remove_cv_t instead of std::remove_cvref_t.
622 (expected::transform_error): Likewise.
623 (expected<cv void, E>::transform): Likewise.
624 (expected<cv void, E>::transform_error): Likewise.
625 * include/std/optional (transform): Use std::remove_cv_t.
626 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
627
628 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
629
630 * include/std/optional (optional): Adjust static assertion to
631 reject arrays and functions as well as references.
632 * testsuite/20_util/optional/requirements_neg.cc: New test.
633
634 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
635
636 PR libstdc++/103387
637 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
638 std::use_facet instead of cached _M_num_get facet.
639 (istream::operator>>(short&)): Likewise.
640 (istream::operator>>(int&)): Likewise.
641 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
642 std::use_facet instead of cached _M_num_put facet.
643
644 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
645
646 * include/bits/char_traits.h (char_traits::copy): Return without
647 using memcpy if n==0.
648 (char_traits::assign): Likewise for memset.
649
650 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
651
652 PR libstdc++/109299
653 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
654 hint for compiler that local strings fit in the local buffer.
655
656 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
657
658 PR libstdc++/109288
659 * include/std/chrono (__detail::__get_leap_second_info): Update
660 expiry date of hardcoded leapseconds list.
661 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
662 Likewise.
663 * src/c++20/tzdata.zi: Import new file from 2023a release.
664 * testsuite/std/time/time_zone/get_info_local.cc: Only check
665 transitions for Egypt up to 2014.
666
667 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
668
669 * include/experimental/bits/simd.h (is_simd_flag_type): New.
670 (_IsSimdFlagType): New.
671 (copy_from, copy_to, load ctors): Constrain _Flags using
672 _IsSimdFlagType.
673
674 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
675
676 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
677 _Base::_S_divides if the optimized _S_divides function is hidden
678 via the preprocessor.
679
680 2023-03-27 Jakub Jelinek <jakub@redhat.com>
681
682 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
683 warning if size_t is not unsigned long.
684
685 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
686
687 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
688 Add overload, as per LWG 3893.
689 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
690 Check assignment from nullptr.
691
692 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
693
694 * include/std/format (formatter<const charT[N], charT>): Do not
695 define partial speclialization, as per LWG 3833.
696 * testsuite/std/format/formatter/requirements.cc: Check it.
697
698 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
699
700 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
701 as per LWG 3792.
702 * testsuite/20_util/exchange/constexpr.cc: Check for it.
703
704 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
705
706 * include/std/version (__cpp_lib_format): Define.
707 * testsuite/std/format/functions/format.cc: Check it.
708
709 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
710
711 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
712 Pass rvalues to the callback, as now allowed by LWG 3645.
713 Enforce preconditions on the return value.
714 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
715 Adjust.
716
717 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
718
719 * include/std/format: Add a comment noting that the resolution
720 of LWG 3720 has been applied..
721
722 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
723
724 * include/bits/regex.h (match_results): Add allocator-extended
725 copy and move constructors, as per LWG 2195.
726 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
727
728 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
729
730 * include/bits/stream_iterator.h (istream_iterator): Add
731 constexpr to copy constructor, as per LWG 3600.
732 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
733 Check copy construction.
734
735 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
736
737 * include/experimental/bits/simd_x86.h
738 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
739 with __RECIPROCAL_MATH__.
740
741 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
742
743 * include/experimental/bits/simd_detail.h: Don't define
744 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
745 * include/experimental/bits/simd_x86.h (_S_divides): Remove
746 check for __clang__.
747
748 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
749
750 * include/experimental/bits/simd_detail.h: Don't declare the
751 simd API as constexpr with Clang.
752 * include/experimental/bits/simd_x86.h (__movm): New.
753 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
754 and ?:.
755 (_SimdImplX86::_S_masked_unary): Clang does not implement the
756 same builtins. Implement the function using __movm, ?:, and -
757 operators on vector_size types instead.
758
759 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
760
761 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
762 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
763
764 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
765
766 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
767 formatting.
768
769 2023-03-20 Marek Polacek <polacek@redhat.com>
770
771 PR c++/109159
772 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
773 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
774 * testsuite/23_containers/span/explicit.cc: Likewise.
775
776 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
777
778 PR libstdc++/109182
779 * include/std/expected (expected<void>::expected(in_place_t)):
780 Remove template-head.
781
782 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
783
784 PR libstdc++/109165
785 * testsuite/18_support/coroutines/hash.cc: Use const object
786 in second call.
787
788 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
789
790 PR libstdc++/109165
791 * include/std/coroutine (hash<>::operator()): Add const.
792 * testsuite/18_support/coroutines/hash.cc: New test.
793
794 2023-03-14 Patrick Palka <ppalka@redhat.com>
795
796 PR libstdc++/109111
797 * include/std/ranges (repeat_view): Remove redundant parentheses
798 in requires-clause.
799 (repeat_view::_Iterator): Correct the requires-clause.
800
801 2023-03-14 Patrick Palka <ppalka@redhat.com>
802
803 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
804 Define.
805 (__cpp_lib_move_iterator_concept): Define for C++20.
806 (move_iterator::iterator_concept): Strengthen as per P2520R0.
807 * include/std/version (__cpp_lib_move_iterator_concept): Define
808 for C++20.
809 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
810
811 2023-03-14 Patrick Palka <ppalka@redhat.com>
812
813 * include/bits/ranges_util.h (view_interface::empty): Add
814 preferred overloads that use ranges::size when the range is
815 sized as per LWG 3715.
816 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
817
818 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
819
820 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
821 Only define for C++17 and later.
822
823 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
824
825 * src/Makefile.am: Add comment about linker script fragments.
826 * src/Makefile.in: Regenerate.
827
828 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
829
830 PR libstdc++/62196
831 * include/bits/mask_array.h (mask_array): Add assertions to
832 assignment operators.
833 * include/std/valarray (valarray::operator[](valarray<bool>)):
834 Add assertions.
835 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
836 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
837 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
838 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
839 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
840 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
841 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
842 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
843 * testsuite/26_numerics/valarray/mask.cc: New test.
844
845 2023-03-13 Jakub Jelinek <jakub@redhat.com>
846
847 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
848 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
849
850 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
851
852 * doc/Makefile.am: Add comment referring to documentation.
853 * doc/Makefile.in: Regenerate.
854
855 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
856
857 * doc/html/*: Regenerate.
858
859 2023-03-13 Jonny Grant <jg@jguk.org>
860
861 * doc/xml/faq.xml: Update copyright year.
862
863 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
864
865 * include/bits/allocator.h: Fix typo in comment.
866
867 2023-03-12 Jakub Jelinek <jakub@redhat.com>
868
869 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
870 if it isn't mangled as DF16b but u6__bf16.
871
872 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
873
874 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
875 to https.
876 * doc/html/manual/documentation_hacking.html: Regenerate.
877
878 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
879
880 PR libstdc++/109064
881 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
882 Remove self-recursion in __init__. Add missing _supports.
883 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
884 and unique().
885
886 2023-03-09 Patrick Palka <ppalka@redhat.com>
887
888 * include/std/ranges
889 (cartesian_product_view::_Iterator::_Iterator): Remove
890 constraint on default constructor as per LWG 3849.
891 (cartesian_product_view::_Iterator::_M_prev): Adjust position
892 of _Nm > 0 test as per LWG 3820.
893 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
894 checking only on sized cartesian products.
895 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
896
897 2023-03-09 Patrick Palka <ppalka@redhat.com>
898
899 PR libstdc++/109024
900 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
901 LWG 3796.
902 (repeat_view::_M_pred): Likewise.
903 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
904 * testsuite/std/ranges/repeat/1.cc (test05): New test.
905
906 2023-03-09 Patrick Palka <ppalka@redhat.com>
907
908 PR libstdc++/108362
909 * include/std/ranges (__detail::__can_single_view): New concept.
910 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
911 end of the function declarator.
912 (__detail::__can_iota_view): New concept.
913 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
914 end of the function declarator.
915 (__detail::__can_istream_view): New concept.
916 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
917 end of the function declarator.
918 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
919 * testsuite/std/ranges/istream_view.cc (test08): New test.
920 * testsuite/std/ranges/single_view.cc (test07): New test.
921
922 2023-03-09 Patrick Palka <ppalka@redhat.com>
923
924 PR libstdc++/107572
925 * include/std/ranges (cartesian_product_view::end): When
926 building the tuple of iterators, avoid calling ranges::begin on
927 the first range if __empty_tail is false.
928 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
929
930 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
931
932 PR libstdc++/108882
933 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
934 patterns.
935
936 2023-03-07 Jakub Jelinek <jakub@redhat.com>
937
938 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
939 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
940 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
941 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
942 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
943
944 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
945
946 PR libstdc++/108882
947 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
948 not match symbols in namespace std::__gnu_cxx11_ieee128.
949 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
950 std::__gnu_cxx11_ieee128::money_{get,put}.
951
952 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
953
954 * libsupc++/eh_personality.cc: Fix spelling in comment.
955
956 2023-03-03 Alexandre Oliva <oliva@adacore.com>
957
958 * testsuite/30_threads/async/async.cc (test04): Initialize
959 steady_start, renamed from steady_begin, next to slow_start.
960 Increase tolerance for final wait.
961
962 2023-03-03 Alexandre Oliva <oliva@adacore.com>
963
964 * testsuite/libstdc++-prettyprinters/80276.cc: Add
965 std::string to debug info.
966 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
967
968 2023-03-03 Alexandre Oliva <oliva@adacore.com>
969
970 PR libstdc++/104852
971 PR libstdc++/95989
972 PR libstdc++/52590
973 * include/bits/std_thread.h (thread::_M_thread_deps): New
974 static implicitly-inline member function.
975 (std::thread template ctor): Pass it to _M_start_thread.
976 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
977 parameter, force it live on entry.
978
979 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
980
981 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
982 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
983 Likewise.
984 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
985 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
986 Likewise.
987
988 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
989
990 * include/bits/cow_string.h: Fix typo in comment.
991
992 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
993
994 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
995 current time zone cannot be determined.
996 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
997 HAVE_TZDB macro and test all members unconditionally.
998
999 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1000
1001 PR libstdc++/108952
1002 * include/bits/uses_allocator_args.h
1003 (uses_allocator_construction_args): Implement LWG 3527.
1004 * testsuite/20_util/pair/astuple/get-2.cc: New test.
1005 * testsuite/20_util/scoped_allocator/108952.cc: New test.
1006 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
1007
1008 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1009
1010 PR libstdc++/108846
1011 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
1012 Add __assign_one static member function.
1013 (__copy_move<true, false, RA>): Likewise.
1014 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
1015 value.
1016 (__copy_move_backward<IsMove, true, RA>): Likewise.
1017 * testsuite/25_algorithms/copy/108846.cc: New test.
1018 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
1019 * testsuite/25_algorithms/copy_n/108846.cc: New test.
1020 * testsuite/25_algorithms/move/108846.cc: New test.
1021 * testsuite/25_algorithms/move_backward/108846.cc: New test.
1022
1023 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1024
1025 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
1026 attributes.
1027
1028 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
1029
1030 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
1031 caveat to comment.
1032 * include/bits/basic_string.h (resize_and_overwrite): Add
1033 doxygen comment.
1034
1035 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1036
1037 * include/experimental/bits/simd.h: Line breaks and indenting
1038 fixed to follow the libstdc++ standard.
1039 * include/experimental/bits/simd_builtin.h: Likewise.
1040 * include/experimental/bits/simd_fixed_size.h: Likewise.
1041 * include/experimental/bits/simd_neon.h: Likewise.
1042 * include/experimental/bits/simd_ppc.h: Likewise.
1043 * include/experimental/bits/simd_scalar.h: Likewise.
1044 * include/experimental/bits/simd_x86.h: Likewise.
1045
1046 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1047
1048 PR libstdc++/108030
1049 * include/experimental/bits/simd_fixed_size.h
1050 (_SimdImplFixedSize::_S_broadcast): Replace inline with
1051 _GLIBCXX_SIMD_INTRINSIC.
1052 (_SimdImplFixedSize::_S_generate): Likewise.
1053 (_SimdImplFixedSize::_S_load): Likewise.
1054 (_SimdImplFixedSize::_S_masked_load): Likewise.
1055 (_SimdImplFixedSize::_S_store): Likewise.
1056 (_SimdImplFixedSize::_S_masked_store): Likewise.
1057 (_SimdImplFixedSize::_S_min): Likewise.
1058 (_SimdImplFixedSize::_S_max): Likewise.
1059 (_SimdImplFixedSize::_S_complement): Likewise.
1060 (_SimdImplFixedSize::_S_unary_minus): Likewise.
1061 (_SimdImplFixedSize::_S_plus): Likewise.
1062 (_SimdImplFixedSize::_S_minus): Likewise.
1063 (_SimdImplFixedSize::_S_multiplies): Likewise.
1064 (_SimdImplFixedSize::_S_divides): Likewise.
1065 (_SimdImplFixedSize::_S_modulus): Likewise.
1066 (_SimdImplFixedSize::_S_bit_and): Likewise.
1067 (_SimdImplFixedSize::_S_bit_or): Likewise.
1068 (_SimdImplFixedSize::_S_bit_xor): Likewise.
1069 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
1070 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
1071 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
1072 explicit about not always-inline, yet).
1073 (_SimdImplFixedSize::_S_isinf): Likewise.
1074 (_SimdImplFixedSize::_S_isfinite): Likewise.
1075 (_SimdImplFixedSize::_S_isnan): Likewise.
1076 (_SimdImplFixedSize::_S_isnormal): Likewise.
1077 (_SimdImplFixedSize::_S_signbit): Likewise.
1078
1079 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1080
1081 PR libstdc++/108856
1082 * include/experimental/bits/simd_builtin.h
1083 (_SimdImplBuiltin::_S_masked_unary): More efficient
1084 implementation of masked inc-/decrement for integers and floats
1085 without AVX2.
1086 * include/experimental/bits/simd_x86.h
1087 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
1088 builtins for masked inc-/decrement.
1089
1090 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1091
1092 * include/experimental/executor (executor): Constrain template
1093 constructors.
1094
1095 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1096
1097 * include/experimental/internet (basic_endpoint): Add missing
1098 constexpr to comparison operators.
1099 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
1100
1101 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1102
1103 * include/experimental/internet (network_v4::netmask()): Avoid
1104 undefined shift.
1105 (network_v4::broadcast()): Optimize and fix for targets with
1106 uint_least32_t wider than 32 bits.
1107 (network_v4::to_string(const Allocator&)): Fix for custom
1108 allocators and optimize using to_chars.
1109 (operator==(const network_v4&, const network_v4&)): Add missing
1110 constexpr.
1111 (operator==(const network_v6&, const network_v6&)): Likewise.
1112 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
1113 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
1114
1115 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1116
1117 * include/experimental/internet (address_4(const bytes_type&)):
1118 Use __builtin_bit_cast if available, otherwise convert to
1119 network byte order.
1120 (address_v4::to_bytes()): Likewise, but convert from network
1121 byte order.
1122 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
1123 incorrect tests. Check for constexpr too.
1124 * testsuite/experimental/net/internet/address/v4/creation.cc:
1125 Likewise.
1126 * testsuite/experimental/net/internet/address/v4/members.cc:
1127 Check that bytes_type is a standard-layout type.
1128
1129 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1130
1131 * include/experimental/internet (address_v4::to_string):
1132 Optimize.
1133 * testsuite/experimental/net/internet/address/v4/members.cc:
1134 Check more addresses.
1135
1136 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1137
1138 * include/ext/aligned_buffer.h (__aligned_buffer): Add
1139 diagnostic pragmas.
1140
1141 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1142
1143 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
1144 before dg-do.
1145
1146 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1147
1148 * testsuite/experimental/simd/tests/reductions.cc: Introduce
1149 max_distance as the type-dependent max error.
1150
1151 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1152
1153 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
1154 int. The actual range of these indexes is very small.
1155
1156 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1157
1158 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
1159 (_S_bit_shift_right): Declare constexpr. The implementation was
1160 already expecting constexpr evaluation.
1161
1162 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1163
1164 PR libstdc++/108030
1165 * include/experimental/bits/simd_detail.h
1166 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
1167 __clang__.
1168
1169 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1170
1171 PR libstdc++/108030
1172 * include/experimental/bits/simd.h (__vector_broadcast):
1173 Implement via __vector_broadcast_impl instead of
1174 __call_with_n_evaluations + 2 lambdas.
1175 (__vector_broadcast_impl): New.
1176
1177 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1178
1179 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
1180 Avoid destruction of the mutex pool.
1181
1182 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1183
1184 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
1185 on vxworks.
1186 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
1187 Likewise.
1188
1189 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1190
1191 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
1192 kernel mode.
1193
1194 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
1195
1196 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1197
1198 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
1199
1200 * include/experimental/bits/simd.h (__extract_part, split):
1201 Use reserved name for template parameter.
1202
1203 2023-02-20 Andreas Schwab <schwab@suse.de>
1204
1205 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
1206
1207 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1208
1209 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
1210 * doc/html/faq.html: Regenerate.
1211
1212 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1213
1214 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
1215 between scalars requires the __bit_cast helper function instead
1216 of simd_bit_cast.
1217
1218 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1219
1220 * include/experimental/bits/simd_x86.h
1221 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
1222 (_SimdImplX86::_S_less_equal): Do not call
1223 __builtin_is_constant_evaluated in constexpr-if.
1224
1225 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1226
1227 * testsuite/experimental/simd/tests/bits/verify.h
1228 (verify::verify): Use %zx for size_t in format string.
1229
1230 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1231
1232 * testsuite/experimental/simd/generate_makefile.sh: Generate and
1233 pre-compile pch.h, which includes all headers that do not depend
1234 on command-line macros.
1235 * testsuite/experimental/simd/tests/bits/main.h: New file.
1236 (iterate_abis, main): Moved from verify.h.
1237 * testsuite/experimental/simd/tests/bits/verify.h
1238 (iterate_abis, main): Moved to main.h.
1239 * testsuite/experimental/simd/tests/bits/conversions.h: Add
1240 include guard.
1241 (genHalfBits): Simplify.
1242 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
1243 guard.
1244 (make_alternating_mask): Moved from mask_loadstore.
1245 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
1246 include guard.
1247 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
1248 * testsuite/experimental/simd/tests/mask_loadstore.cc
1249 (make_mask, make_alternating_mask): Removed.
1250 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
1251 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
1252 Removed.
1253 * testsuite/experimental/simd/tests/abs.cc: Only include
1254 bits/main.h.
1255 Ditto.
1256 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
1257 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
1258 * testsuite/experimental/simd/tests/casts.cc: Ditto.
1259 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
1260 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
1261 * testsuite/experimental/simd/tests/generator.cc: Ditto.
1262 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
1263 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
1264 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1265 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
1266 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
1267 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
1268 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
1269 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
1270 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
1271 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
1272 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
1273 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
1274 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
1275 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
1276 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
1277 * testsuite/experimental/simd/tests/simd.cc: Ditto.
1278 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
1279 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
1280 * testsuite/experimental/simd/tests/splits.cc: Ditto.
1281 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
1282 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
1283 * testsuite/experimental/simd/tests/where.cc: Ditto.
1284
1285 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1286
1287 * testsuite/experimental/simd/README.md: Document the timeout
1288 and timeout-factor directives. Minor typo fixed.
1289
1290 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1291
1292 PR libstdc++/108030
1293 * include/experimental/bits/simd_detail.h: Define
1294 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1295 * include/experimental/bits/simd.h: Annotate lambdas with
1296 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1297 * include/experimental/bits/simd_builtin.h: Ditto.
1298 * include/experimental/bits/simd_converter.h: Ditto.
1299 * include/experimental/bits/simd_fixed_size.h: Ditto.
1300 * include/experimental/bits/simd_math.h: Ditto.
1301 * include/experimental/bits/simd_neon.h: Ditto.
1302 * include/experimental/bits/simd_x86.h: Ditto.
1303
1304 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
1305
1306 * include/experimental/bits/simd.h
1307 (_SimdWrapper::_M_is_constprop_none_of)
1308 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
1309 computed result still satisfies __builtin_constant_p.
1310
1311 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1312
1313 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
1314 ellipsis character.
1315
1316 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1317
1318 * include/Makefile.am: Add new header.
1319 * include/Makefile.in: Regenerate.
1320 * include/experimental/synchronized_value: New file.
1321 * testsuite/experimental/synchronized_value.cc: New test.
1322
1323 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1324
1325 * include/experimental/optional: Fix header name in comment.
1326
1327 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1328
1329 * include/std/format (__format::_Arg_store): New class template.
1330 (basic_format_args): Remove nested type _Store and add deduction
1331 guide from _Arg_store.
1332 (basic_format_arg, make_format_args): Adjust.
1333 * testsuite/std/format/arguments/lwg3810.cc: New test.
1334
1335 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1336
1337 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
1338 constraints to constructors and add deleted overloads for the
1339 dangling cases, as per P2255R2.
1340 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
1341 make dangling cases ill-formed.
1342 * testsuite/20_util/pair/dangling_ref.cc: New test.
1343
1344 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1345
1346 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
1347
1348 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1349
1350 * include/ext/throw_allocator.h: Use reserved names for
1351 parameters.
1352
1353 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1354
1355 * testsuite/17_intro/names_pstl.cc: Add space after effective
1356 target name.
1357
1358 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1359
1360 * include/pstl/algorithm_fwd.h (__pattern_search_n)
1361 (__brick_unique_copy, __brick_adjacent_find)
1362 (__brick_generate_n, __pattern_generate_n): Use reserved names
1363 for parameters.
1364 * include/pstl/algorithm_impl.h (__brick_unique_copy)
1365 (__pattern_reverse, __brick_generate_n): Likewise.
1366 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
1367 (__prefer_parallel_tag): Likewise.
1368 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
1369 * include/pstl/glue_numeric_defs.h (adjacent_difference):
1370 Likewise.
1371 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
1372 Likewise.
1373 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
1374 * include/pstl/unseq_backend_simd.h (_Combiner)
1375 (__simd_min_element, __simd_minmax_element): Likewise.
1376 * testsuite/17_intro/names_pstl.cc: New test.
1377
1378 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1379
1380 * include/bits/fs_ops.h (create_directory): Use reserved name
1381 for parameter.
1382 * include/bits/ranges_algo.h (__contains_subrange_fn):
1383 Likewise.
1384 * include/bits/regex_automaton.h (_State_base::_M_print):
1385 Likewise.
1386 * include/bits/regex_automaton.tcc(_State_base::_M_print):
1387 Likewise.
1388 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
1389 * include/experimental/bits/fs_ops.h (create_directory):
1390 Likewise.
1391 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
1392 (recursive_timed_mutex:_M_clocklock): Likewise.
1393 * include/std/tuple (basic_common_reference): Likewise.
1394 * libsupc++/cxxabi_init_exception.h
1395 (__cxa_init_primary_exception): Likewise.
1396 * testsuite/17_intro/names.cc: Add checks.
1397
1398 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
1399
1400 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
1401 to www.open-std.org and https.
1402 * doc/html/manual/status.html: Regenerate.
1403
1404 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
1405
1406 PR libstdc++/103934
1407 * include/std/atomic (atomic_flag_wait): Add.
1408 (atomic_flag_wait_explicit): Add.
1409 (atomic_flag_notify): Add.
1410 (atomic_flag_notify_explicit): Add.
1411 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
1412 Add test case to cover missing atomic_flag free functions.
1413
1414 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
1415
1416 PR libstdc++/103934
1417 * include/std/atomic (atomic_flag_test): Add.
1418 (atomic_flag_test_explicit): Add.
1419 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
1420 test case to cover missing atomic_flag free functions.
1421 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
1422 Likewise.
1423
1424 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
1425
1426 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
1427 "The Component Object Model" reference.
1428 * doc/html/manual/policy_data_structures.html: Regenerate.
1429
1430 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
1431
1432 * doc/xml/manual/containers.xml: Tweak a link to N1780
1433 (C++ standard).
1434 * doc/html/manual/associative.html: Regenerate.
1435
1436 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
1437
1438 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
1439 * doc/html/manual/facets.html: Regenerate.
1440
1441 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
1442
1443 * doc/xml/manual/policy_data_structures_biblio.xml: Update
1444 link to "Worst-case efficient priority queues".
1445 * doc/html/manual/policy_data_structures.html: Regenerate.
1446
1447 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
1448
1449 * doc/xml/manual/using.xml: Document newly-freestanding
1450 headers and the effect of the -ffreestanding flag.
1451 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
1452 completed.
1453 * doc/xml/manual/configure.xml: Document that hosted installs
1454 respect __STDC_HOSTED__.
1455 * doc/xml/manual/test.xml: Document how to run tests in
1456 freestanding mode.
1457 * doc/html/*: Regenerate.
1458
1459 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1460
1461 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
1462 (__find_last_if_fn): Likewise.
1463
1464 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1465
1466 * include/std/type_traits: Add diagnostic pragmas around
1467 references to deprecated std::aligned_storage and
1468 std::aligned_union traits.
1469 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
1470 Add dg-warning for et c++23.
1471 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
1472 Likewise.
1473 * testsuite/20_util/aligned_storage/value.cc: Likewise.
1474 * testsuite/20_util/aligned_union/1.cc: Likewise.
1475 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
1476 Likewise.
1477
1478 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
1479
1480 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
1481 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
1482 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
1483 * include/std/type_traits (aligned_storage, aligned_union)
1484 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
1485 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
1486 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
1487
1488 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
1489
1490 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
1491 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
1492 consistent with other 'deprecated' macros.
1493 * include/std/type_traits (is_pod, is_pod_v): Use
1494 _GLIBCXX20_DEPRECATED_SUGGEST instead.
1495
1496 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
1497
1498 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
1499 * Makefile.in: Regenerate.
1500 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
1501 There's no history to be compatible with.
1502 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
1503 source files from the build.
1504 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1505 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1506 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
1507 * src/Makefile.in: Regenerate.
1508 * src/c++11/Makefile.in: Regenerate.
1509 * src/c++17/Makefile.in: Regenerate.
1510 * src/c++20/Makefile.in: Regenerate.
1511 * src/c++98/Makefile.in: Regenerate.
1512
1513 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
1514
1515 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
1516 filesystem, libbacktrace and experimental.
1517 * src/Makefile.in: Regenerate.
1518
1519 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
1520
1521 PR libstdc++/108672
1522 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
1523 instead of int32_t.
1524
1525 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
1526
1527 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
1528 * doc/html/manual/documentation_hacking.html: Regenerate.
1529
1530 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
1531
1532 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
1533 storage to the move-from instance when allocators are equal.
1534 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
1535 New test case.
1536
1537 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
1538
1539 * config/os/gnu-linux/os_defines.h [!__linux__]
1540 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
1541
1542 2023-02-03 Patrick Palka <ppalka@redhat.com>
1543
1544 * include/bits/ranges_algo.h (__find_last_fn, find_last):
1545 Define.
1546 (__find_last_if_fn, find_last_if): Define.
1547 (__find_last_if_not_fn, find_last_if_not): Define.
1548 * testsuite/25_algorithms/find_last/1.cc: New test.
1549 * testsuite/25_algorithms/find_last_if/1.cc: New test.
1550 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
1551
1552 2023-02-03 Patrick Palka <ppalka@redhat.com>
1553
1554 * include/bits/ranges_algo.h (out_value_result): Define.
1555 (iota_result): Define.
1556 (__iota_fn, iota): Define.
1557 * testsuite/25_algorithms/iota/1.cc: New test.
1558
1559 2023-02-03 Patrick Palka <ppalka@redhat.com>
1560
1561 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
1562 (__contains_subrange_fn, contains_subrange): Define.
1563 * testsuite/25_algorithms/contains/1.cc: New test.
1564 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
1565
1566 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1567
1568 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
1569 * doc/html/manual/abi.html: Regenerate.
1570
1571 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1572
1573 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
1574 errc::function_not_supported instead of errc::not_supported.
1575
1576 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1577
1578 * include/std/sstream (basic_stringbuf::view): Define for old
1579 std::string ABI.
1580 (basic_istringstream::view, basic_0stringstream::view)
1581 (basic_stringstream::view): Likewise.
1582 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
1583 { dg-require-effective-target cxx11_abi }.
1584 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1585 Likewise.
1586 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1587 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1588 Likewise.
1589 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1590 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1591 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1592 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1593 Likewise.
1594
1595 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1596
1597 PR libstdc++/108636
1598 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
1599 conversion operators for directory iterator comparisons with
1600 std::default_sentinel_t.
1601 * include/bits/fs_path.h (path::path(string_view, _Type))
1602 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
1603 definitions to ...
1604 * src/c++17/fs_path.cc: ... here.
1605 * testsuite/27_io/filesystem/path/108636.cc: New test.
1606
1607 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
1608
1609 * include/std/variant (variant::operator=): Implement resolution
1610 of LWG 3585.
1611 * testsuite/20_util/variant/lwg3585.cc: New test.
1612
1613 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1614
1615 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
1616 link to https.
1617 * doc/html/manual/using_exceptions.html: Regenerate.
1618
1619 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
1620
1621 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
1622 * doc/html/manual/debug.html: Regenerate.
1623
1624 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1625
1626 * src/c++11/random.cc (random_device::_M_fini): Do not try to
1627 close the file handle if the target doesn't support the
1628 /dev/random and /dev/urandom files.
1629
1630 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1631
1632 * config/os/generic/error_constants.h (errc::value_too_large)
1633 [__AVR__]: Define.
1634 * src/c++11/system_error.cc
1635 (system_category::default_error_condition) [__AVR__]: Only match
1636 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
1637 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
1638 for ENOENT etc. in switch.
1639 (fs::remove_all) [__AVR__]: Likewise.
1640 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
1641 close etc.
1642
1643 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
1644
1645 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
1646 embed_zoneinfo=no
1647 * configure: Regenerate.
1648
1649 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
1650
1651 PR testsuite/108632
1652 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
1653 struct at end of S0.
1654
1655 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
1656
1657 * doc/xml/manual/shared_ptr.xml: Move links from both
1658 http://open-std.org and http://www.open-std.org to
1659 https://www.open-std.org.
1660 * doc/html/manual/memory.html: Regenerate.
1661
1662 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1663
1664 * doc/xml/manual/appendix_contributing.xml: Adjust link to
1665 ISO C++ standard at ANSI.
1666 Move link to www.open-std.org to https.
1667 * doc/html/manual/appendix_contributing.html: Regenerate.
1668
1669 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1670
1671 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
1672 links to https.
1673 * doc/html/manual/documentation_hacking.html: Regenerate.
1674
1675 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
1676
1677 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
1678 * doc/html/manual/abi.html: Regenerate.
1679
1680 2023-01-27 Jakub Jelinek <jakub@redhat.com>
1681
1682 PR libstdc++/108568
1683 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
1684 include features.h if present and then check __GLIBC__ and
1685 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
1686 __GLIBC_PREREQ which isn't defined yet.
1687
1688 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
1689
1690 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
1691 string literal.
1692
1693 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
1694
1695 PR libstdc++/108554
1696 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
1697
1698 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1699
1700 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
1701 rules named "+" for compatibility with older tzdata.zi files.
1702
1703 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1704
1705 PR libstdc++/108554
1706 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
1707 nonnull attribute.
1708 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
1709 attributes.
1710 * testsuite/23_containers/map/modifiers/108554.cc: New test.
1711
1712 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
1713
1714 PR libstdc++/108530
1715 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
1716 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
1717
1718 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
1719
1720 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
1721 use https.
1722 * doc/html/manual/bugs.html: Regenerate.
1723
1724 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
1725
1726 PR libstdc++/108530
1727 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
1728 /etc/sysconfig/clock.
1729
1730 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
1731
1732 PR libstdc++/102301
1733 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
1734 std::make_reverse_iterator.
1735 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
1736 (make_from_tuple): Add static assertion from P2255 to diagnose
1737 dangling references.
1738 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
1739 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
1740
1741 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
1742
1743 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
1744 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
1745 (_Safe_iterator::operator++(int)): Use latter.
1746 (_Safe_iterator::operator--(int)): Likewise.
1747 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
1748 check.
1749 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
1750 New.
1751 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
1752 (_Safe_local_iterator::operator++(int)): Use latter.
1753 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
1754 entry associated to the array entry.
1755
1756 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
1757
1758 * include/bits/fs_path.h (u8path): Add deprecated attribute.
1759 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
1760 -Wno-deprecated-declarations for C++20 and later.
1761 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
1762 Likewise.
1763 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
1764 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1765 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
1766
1767 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
1768
1769 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
1770 Always call _M_fini and _M_getentropy.
1771
1772 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
1773
1774 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
1775 to www.open-std.org to use https.
1776 (COM: Component Model Object Technologies): Rename from...
1777 (The Component Object Model): ...to.
1778 * doc/html/manual/policy_data_structures.html: Regenerate.
1779
1780 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
1781
1782 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
1783 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
1784 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
1785
1786 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
1787
1788 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
1789 of $host. Fix check for file being present during native build.
1790 * configure: Regenerate.
1791
1792 2023-01-17 Martin Liska <mliska@suse.cz>
1793
1794 * src/libbacktrace/Makefile.in: Regenerate.
1795
1796 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
1797
1798 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
1799
1800 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
1801
1802 PR libstdc++/108413
1803 * include/c_compatibility/stdatomic.h: Change copyright line to
1804 be consistent with other headers contributed under DCO terms.
1805 * include/std/expected: Add full stop to copyright line.
1806 * src/c++20/tzdb.cc: Likewise.
1807
1808 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
1809
1810 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
1811 https.
1812 * doc/xml/manual/status_cxx2017.xml: Ditto.
1813 * doc/xml/manual/status_cxx2020.xml: Ditto.
1814 * doc/xml/manual/status_cxx2023.xml: Ditto.
1815 * doc/html/manual/status.html: Regenerate.
1816
1817 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
1818
1819 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
1820 and fail gracefully if defining the weak symbol doesn't work.
1821
1822 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
1823
1824 PR libstdc++/108288
1825 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
1826 fix to other iterator category.
1827 (_Safe_iterator<>::operator--(int)): Likewise.
1828 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
1829 Fix deadlock.
1830 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
1831 (invalid_local_iterator_post_increment): New.
1832 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
1833 New test.
1834 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
1835 New test.
1836
1837 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
1838
1839 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
1840 dg-options.
1841
1842 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
1843
1844 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
1845
1846 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
1847
1848 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
1849 windows.h. Add pecoff as FORMAT_FILE.
1850 * config.h.in: Regenerate.
1851 * configure: Regenerate.
1852 * src/libbacktrace/Makefile.am: Regenerate.
1853 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
1854
1855 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
1856
1857 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
1858 raw __name if __cxa_demangle could not demangle it.
1859
1860 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
1861
1862 PR libstdc++/108409
1863 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
1864 variable.
1865
1866 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
1867
1868 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
1869 loading tzdb.
1870 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
1871 effective target.
1872 * testsuite/std/time/tzdb_list/1.cc: Likewise.
1873
1874 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
1875
1876 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
1877 --with-libstdcxx-zoneinfo-dir configure option with
1878 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
1879 a directory.
1880 * config.h.in: Regenerate.
1881 * configure: Regenerate.
1882 * doc/xml/manual/configure.xml: Document configure option.
1883 * doc/html/manual/configure.html: Regenerate.
1884 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
1885 * src/c++20/Makefile.in: Regenerate.
1886 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
1887 null pointer if no directory is configured.
1888 (zoneinfo_dir): Replace with ...
1889 (zoneinfo_file): New function.
1890 (tzdata_stream): New istream class.
1891 (remote_version, reload_tzdb): Use tzdata_stream.
1892 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
1893 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
1894 tzdata.zi file in default location.
1895 * src/c++20/tzdata.zi: New file.
1896
1897 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
1898
1899 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
1900 * testsuite/std/time/month_day/io.cc: New test.
1901 * testsuite/std/time/month_day_last/io.cc: New test.
1902 * testsuite/std/time/month_weekday/io.cc: New test.
1903 * testsuite/std/time/month_weekday_last/io.cc: New test.
1904 * testsuite/std/time/weekday_indexed/io.cc: New test.
1905 * testsuite/std/time/weekday_last/io.cc: New test.
1906 * testsuite/std/time/year_month/io.cc: New test.
1907 * testsuite/std/time/year_month_day_last/io.cc: New test.
1908 * testsuite/std/time/year_month_weekday/io.cc: New test.
1909 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
1910
1911 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
1912
1913 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
1914 specifications.
1915 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
1916 export.
1917
1918 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
1919
1920 * include/bits/std_mutex.h: Include <errno.h>.
1921
1922 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
1923
1924 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
1925 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
1926 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
1927 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
1928 std::make_unique with a freestanding-compatible wrapper around
1929 unique_ptr.
1930 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
1931 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
1932 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
1933 Ditto.
1934 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
1935 of __cpp_lib_ranges in !HOSTED.
1936
1937 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
1938
1939 * include/Makefile.am: Install bits/char_traits.h,
1940 std/string_view
1941 * include/Makefile.in: Regenerate.
1942 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
1943 mbstate-only bits behind appropriate #ifs.
1944 * include/std/string_view: Gate <iostream> functionality behind
1945 HOSTED.
1946 * include/std/version: Enable __cpp_lib_constexpr_string_view
1947 and __cpp_lib_starts_ends_with in !HOSTED.
1948 * include/std/ranges: Re-enable __is_basic_string_view on
1949 freestanding, include <string_view> directly.
1950 * include/precompiled/stdc++.h: Include <string_view> when
1951 !HOSTED too.
1952 * testsuite/20_util/function_objects/searchers.cc: Skip testing
1953 boyer_moore searchers on freestanding
1954 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
1955 <string>-related tests behind __STDC_HOSTED__.
1956 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
1957 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
1958 unused <stdexcept> include.
1959 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
1960 unused <vector> include.
1961 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1962 Guard <string> related testing behind __STDC_HOSTED__.
1963 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1964 Guard <stdexcept> related tests behind __STDC_HOSTED__.
1965 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1966 Ditto.
1967 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1968 Guard <stdexcept> tests behind __STDC_HOSTED__.
1969 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
1970 Enable test on freestanding, guard <stdexcept> bits behind
1971 __STDC_HOSTED__.
1972 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
1973 Guard <stdexcept> bits behind __STDC_HOSTED__.
1974 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
1975 Ditto.
1976
1977 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
1978
1979 PR libstdc++/86419
1980 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
1981 errors in incomplete multibyte sequences.
1982 (utf16_in): Remove surrogates parameter. Fix conditions for
1983 returning partial.
1984 (utf16_out): Fix condition for returning partial.
1985 (ucs2_in): Do not pass surrogates argument to utf16_in.
1986 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
1987 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
1988 tests.
1989 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
1990 test.
1991
1992 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
1993
1994 PR libstdc++/108331
1995 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
1996 __GTHREAD_LEGACY_MUTEX_T if defined.
1997
1998 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
1999
2000 PR libstdc++/108327
2001 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
2002 Export __try_use_facet specializations for facets in namespace
2003 __gnu_cxx_ldbl128.
2004 * config/os/gnu-linux/ldbl-ieee128-extra.ver
2005 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
2006 __gnu_cxx_ieee128.
2007 * testsuite/util/testsuite_abi.cc: Add to lists of known and
2008 latest versions.
2009
2010 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2011
2012 * include/bits/std_mutex.h: Remove <system_error> include.
2013 * include/std/condition_variable: Add <bits/error_constants.h>
2014 include.
2015 * include/std/mutex: Likewise.
2016 * include/std/shared_mutex: Likewise.
2017
2018 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2019
2020 PR libstdc++/77691
2021 * include/experimental/memory_resource
2022 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
2023 (do_allocate, do_deallocate): Check it.
2024 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2025 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
2026
2027 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2028
2029 * doc/xml/manual/abi.xml: Add latest library versions.
2030 * doc/html/manual/abi.html: Regenerate.
2031
2032 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
2033
2034 PR libstdc++/107189
2035 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
2036 unused _Alloc_node instance.
2037
2038 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2039
2040 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
2041 Define as unsigned long if always lock-free, and unsigned int
2042 otherwise.
2043
2044 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2045
2046 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
2047 __catch macros for exception handling.
2048
2049 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2050
2051 PR libstdc++/108221
2052 * include/bits/stl_algobase.h (__lg): Replace six overloads with
2053 a single function template for all integer types.
2054 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
2055 arithmetic results back to _Distance.
2056
2057 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2058
2059 PR libstdc++/108221
2060 * include/std/span (span::span()): Un-simplify constraint to
2061 work for size_t of lesser rank than int.
2062
2063 2023-01-07 LIU Hao <lh_mouse@126.com>
2064
2065 PR middle-end/108300
2066 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
2067 <windows.h>.
2068 * src/c++11/thread.cc: Likewise.
2069 * src/c++17/fs_ops.cc: Likewise.
2070 * src/filesystem/ops.cc: Likewise.
2071
2072 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2073
2074 PR libstdc++/108228
2075 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
2076
2077 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2078
2079 PR libstdc++/108235
2080 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
2081 template and partial specialization for synchronizing access to
2082 time_zone::_Impl::infos.
2083 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
2084 rules_counter.
2085
2086 2023-01-06 Patrick Palka <ppalka@redhat.com>
2087
2088 PR libstdc++/108260
2089 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
2090 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
2091 (__cpp_lib_ranges_chunk): Likewise.
2092 (__cpp_lib_ranges_slide): Likewise.
2093 (__cpp_lib_ranges_chunk_by): Likewise.
2094 (__cpp_lib_ranges_join_with): Likewise.
2095 (__cpp_lib_ranges_repeat): Likewise.
2096 (__cpp_lib_ranges_stride): Likewise.
2097 (__cpp_lib_ranges_cartesian_product): Likewise.
2098 (__cpp_lib_ranges_as_rvalue): Likewise.
2099 * include/std/version: Ditto.
2100 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
2101 feature-test macro.
2102 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2103 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2104 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2105 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2106 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2107 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2108 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2109 * testsuite/std/ranges/repeat/1.cc: Likewise.
2110 * testsuite/std/ranges/zip/1.cc: Likewise.
2111 * testsuite/std/ranges/version_c++23.cc: New test.
2112
2113 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2114
2115 PR libstdc++/108214
2116 * include/std/bitset (operator>>): Use alloca in the right
2117 scope, not in a constructor.
2118 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
2119
2120 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2121
2122 PR libstdc++/108221
2123 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
2124 Disable visiting floating-point types.
2125
2126 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2127
2128 PR libstdc++/108288
2129 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
2130 (_Safe_iterator::operator--(int)): Do not hold lock around
2131 construction of return value.
2132
2133 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
2134
2135 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
2136 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
2137 lock release. Revise loop.
2138 (__atomic_add): Likewise.
2139
2140 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2141
2142 PR libstdc++/108212
2143 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
2144 variable.
2145 (StdChronoTimePointPrinter::to_string): Use it.
2146
2147 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2148
2149 PR libstdc++/108290
2150 * include/std/functional (_Bind_front): Add no_unique_address
2151 attribute to data members.
2152 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
2153 size of call wrappers with empty types for targets and bound
2154 arguments.
2155
2156 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2157
2158 PR libstdc++/108211
2159 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
2160 using only last component of the name.
2161
2162 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2163
2164 PR libstdc++/108228
2165 PR libstdc++/108235
2166 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
2167 the latest symbol version.
2168 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
2169 atomic<_Node*> is not always lock free.
2170 (USE_ATOMIC_LIST_HEAD): New macro.
2171 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
2172 definition of weak symbol.
2173 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
2174 (tzdb_list::_Node::_S_list_head): New function for accessing
2175 list head efficiently.
2176 (tzdb_list::_Node::_S_cache_list_head): New function for
2177 updating _S_list_head.
2178
2179 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2180
2181 PR libstdc++/108265
2182 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
2183 duration rep is unsigned.
2184 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
2185
2186 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
2187
2188 PR libstdc++/108228
2189 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
2190 Add __gnu_cxx::zoneinfo_dir_override().
2191
2192 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
2193
2194 PR libstdc++/108258
2195 * include/std/array (__array_traits<T, 0>::operator T*()): Add
2196 constexpr.
2197 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
2198 std::array<T, 0>::data().
2199
2200 \f
2201 Copyright (C) 2023 Free Software Foundation, Inc.
2202
2203 Copying and distribution of this file, with or without modification,
2204 are permitted in any medium without royalty provided the copyright
2205 notice and this notice are preserved.