]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
909f1dfc40d1e5b263d0e33c9c441007fd93de25
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
2
3 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
4 [! SIMULATOR_TEST]: Also exclude running test05.
5 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
6
7 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
8
9 * include/std/type_traits: Use using instead of typedef
10
11 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
12
13 PR libstdc++/110077
14 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
15 Only define if _Float128 and long double have different
16 representations.
17
18 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
19
20 PR libstdc++/100285
21 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
22 (basic_endpoint, basic_resolver_entry, resolver_base)
23 (basic_resolver_results, basic_resolver): Only define if the tcp
24 or udp protocols will be defined.
25
26 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
27
28 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
29 * configure: Regenerate.
30 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
31 * doc/html/manual/abi.html: Regenerate.
32
33 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
34
35 PR libstdc++/110149
36 * include/std/format (formatter<const void*, charT>::parse):
37 Only alow 0 and P for C++26 and non-strict modes.
38 (formatter<const void*, charT>::format): Use toupper for P
39 type, and insert zero-fill characters for 0 option.
40 * testsuite/std/format/functions/format.cc: Check pointer
41 formatting. Only check P2510R3 extensions conditionally.
42 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
43 extensions conditionally.
44
45 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
46
47 PR libstdc++/110167
48 * include/std/array (to_array): Initialize arrays of trivial
49 types using memcpy. For non-trivial types, use lambda
50 expressions instead of a separate helper function.
51 (__to_array): Remove.
52 * testsuite/23_containers/array/creation/110167.cc: New test.
53
54 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
55
56 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
57 Removed.
58 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
59 Removed.
60 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
61 Removed.
62 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
63 Removed.
64 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
65 Removed.
66 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
67 Removed.
68 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
69 test.
70 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
71 test.
72 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
73 test.
74
75 2023-06-07 Jakub Jelinek <jakub@redhat.com>
76
77 PR libstdc++/110145
78 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
79 (double_to_chars_test_cases,
80 double_scientific_precision_to_chars_test_cases_2,
81 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
82 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
83 Add unconditional tests with corresponding double constants
84 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
85 0x1.7440bbff418b9p-18.
86
87 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
88
89 * testsuite/util/testsuite_abi.cc (check_version): Re-add
90 CXXABI_1.3.14.
91
92 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
93
94 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
95 Require effective target exceptions_enabled instead of using
96 dg-skip-if.
97 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
98 shrink_to_fit() to be a no-op without exceptions enabled.
99 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
100 Likewise.
101 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
102 Require effective target exceptions_enabled.
103 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
104 Likewise.
105 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
106 Likewise.
107 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
108 Likewise.
109 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
110 Likewise.
111 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
112 Likewise.
113
114 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
115
116 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
117 affected by rounding.
118 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
119 double before comparing for equality.
120 * testsuite/20_util/from_chars/6.cc: Likewise.
121 * testsuite/20_util/variant/86874.cc: Use values that aren't
122 affected by rounding.
123 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
124 original value instead of to floating-point-literal.
125 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
126 Cast arithmetic result to double before comparing for equality.
127 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
128 Likewise.
129 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
130 Likewise.
131 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
132 the absolute difference is less than 0.01 instead of comparing
133 to two decimal places.
134 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
135 Cast arithmetic result to double before comparing for equality.
136 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
137 Likewise.
138 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
139 Likewise.
140 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
141 Likewise.
142 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
143 Likewise.
144 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
145 Likewise.
146 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
147
148 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
149
150 Revert:
151 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
152
153 * configure.ac: Use AS_IF.
154 * configure: Regenerate.
155
156 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
157
158 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
159 'UNSUPPORTED: [...]: exception handling disabled'.
160
161 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
162
163 * testsuite/util/testsuite_abi.cc (check_version): Add
164 CXXABI_1.3.15 symver and make it the latestp. Remove
165 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
166
167 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
168 Jakub Jelinek <jakub@redhat.com>
169
170 PR libstdc++/104772
171 * include/std/limits: (numeric_limits<__float128>): Define
172 for __STRICT_ANSI__ as well.
173 * testsuite/18_support/numeric_limits/128bit.cc: Remove
174 check for __STRICT_ANSI__.
175
176 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
177
178 * configure.ac: Use AS_IF.
179 * configure: Regenerate.
180
181 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
182
183 PR libstdc++/109822
184 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
185 to avoid casts to other vector types. Implement store as
186 succession of power-of-2 sized memcpy to avoid PR90424.
187
188 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
189
190 PR libstdc++/110054
191 * include/experimental/bits/simd_builtin.h (_S_masked_store):
192 Call into deduced ABI's SimdImpl after conversion.
193 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
194 Don't use _mm_maskmoveu_si128. Use the generic fall-back
195 implementation. Also fix masked stores without SSE2, which
196 were not doing anything before.
197
198 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
199
200 * include/experimental/bits/simd.h (__bit_cast): Use
201 __gnu__::__vector_size__ instead of gnu::vector_size.
202
203 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
204
205 PR libstdc++/110139
206 * include/std/array (__array_traits<T, 0>::operator T*()): Make
207 conversion operator explicit.
208 (array::front): Use size_type as subscript operand.
209 (array::data): Use static_cast to make conversion explicit.
210 * testsuite/23_containers/array/element_access/110139.cc: New
211 test.
212
213 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
214
215 * include/bits/locale_classes.tcc: Remove check for
216 codecvt<char8_t, char, mbstate_t> facet.
217
218 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
219
220 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
221 close-on-exec flag on file descriptors.
222
223 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
224
225 PR libstdc++/108178
226 * src/filesystem/ops-common.h (do_copy_file): Check for empty
227 files by trying to read a character.
228 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
229 New test.
230
231 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
232
233 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
234 * config.h.in: Regenerate.
235 * configure: Regenerate.
236 * src/filesystem/ops-common.h (copy_file_copy_file_range):
237 Define new function.
238 (do_copy_file): Use it.
239
240 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
241
242 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
243 * config.h.in: Regenerate.
244 * configure: Regenerate.
245 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
246 function for sendfile logic. Loop to support large files. Skip
247 zero-length files.
248 (do_copy_file): Use it.
249
250 2023-06-04 Jason Merrill <jason@redhat.com>
251
252 PR c++/97720
253 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
254 * config/abi/pre/gnu.ver: Add it.
255
256 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
257
258 * include/parallel/algobase.h: Include <parallel/search.h>.
259
260 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
261
262 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
263 Add const to equality operator.
264
265 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
266
267 * include/std/expected (expected::and_then, expected::or_else)
268 (expected::transform_error): Use _M_val and _M_unex instead of
269 calling value() and error(), as per LWG 3938.
270 (expected::transform): Likewise. Remove incorrect std::move
271 calls from lvalue overloads.
272 (expected<void, E>::and_then, expected<void, E>::or_else)
273 (expected<void, E>::transform): Use _M_unex instead of calling
274 error().
275 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
276 and transform, and for std::expected<void, E>.
277 * testsuite/20_util/expected/lwg3938.cc: New test.
278
279 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
280
281 PR libstdc++/110060
282 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
283 Remove.
284 (vector::size, vector::capacity): Remove calls to _M_invariant.
285 * include/bits/vector.tcc (vector::_M_fill_assign): Add
286 optimization hint to reallocating path.
287 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
288 Likewise.
289 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
290 to...
291 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
292 ...here. Check assign(FwdIter, FwdIter) too.
293 * testsuite/23_containers/vector/types/1.cc: Revert addition
294 of -Wno-stringop-overread option.
295
296 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
297
298 * doc/xml/manual/evolution.xml: Document removal of implicit
299 allocator rebinding extensions in strict mode and for C++20.
300 * doc/html/*: Regenerate.
301
302 2023-06-01 Jason Merrill <jason@redhat.com>
303
304 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
305 handlers in the cleanup phase.
306
307 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
308
309 PR libstdc++/110050
310 * include/experimental/bits/simd.h (__vectorized_sizeof): With
311 __have_neon_a32 only single-precision float works (in addition
312 to integers).
313
314 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
315
316 * include/bits/stl_algo.h
317 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
318 * include/bits/stl_algobase.h: ...here.
319 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
320 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
321 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
322 Move...
323 * include/parallel/algobase.h: ...here.
324 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
325 includes. Include <bits/stl_algobase.h>.
326
327 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
328
329 PR libstdc++/109818
330 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
331 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
332 * config.h.in: Regenerate.
333 * configure: Regenerate.
334 * include/c_global/cmath (float_t, double_t): Guard using new
335 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
336
337 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
338
339 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
340 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
341 for C99 rounding functions to here.
342 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
343 functions from here.
344 * config.h.in: Regenerate.
345 * configure: Regenerate.
346 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
347 of _GLIBCXX_USE_C99_MATH_TR1.
348 * include/bits/random.tcc: Likewise.
349 * include/c_compatibility/math.h: Likewise.
350 * include/c_global/cmath: Likewise.
351 * include/ext/random: Likewise.
352 * include/ext/random.tcc: Likewise.
353 * include/std/complex: Likewise.
354 * testsuite/20_util/from_chars/4.cc: Likewise.
355 * testsuite/20_util/from_chars/8.cc: Likewise.
356 * testsuite/26_numerics/complex/proj.cc: Likewise.
357 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
358 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
359 Likewise.
360 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
361 Likewise.
362 * testsuite/util/testsuite_random.h: Likewise.
363
364 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
365
366 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
367 function.
368 (vector::size(), vector::capacity()): Call _M_invariant().
369 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
370 * testsuite/23_containers/vector/types/1.cc: Add suppression for
371 false positive warning (PR110060).
372
373 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
374
375 PR libstdc++/109921
376 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
377 defined before trying to use _Float128.
378
379 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
380
381 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
382 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
383 * configure: Regenerate.
384
385 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
386
387 * include/bits/unique_lock.h: Include <bits/error_constants.h>
388 here for std::errc constants.
389 * include/std/mutex: Do not include <bits/error_constants.h> and
390 <exception> here.
391
392 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
393
394 * configure.ac: Replace use of -o operator for test.
395 * configure: Regenerate.
396
397 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
398
399 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
400 noexcept to all constructors except the default constructor.
401 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
402 (scoped_allocator_adaptor::outer_allocator): Likewise.
403 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
404
405 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
406
407 PR libstdc++/104772
408 * include/std/limits (numeric_limits<__float128>): Define.
409 * testsuite/18_support/numeric_limits/128bit.cc: New test.
410
411 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
412
413 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
414 msp430 to all 16-bit targets.
415 * configure: Regenerate.
416
417 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
418
419 PR libstdc++/109921
420 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
421 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
422 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
423 binary64.
424 (from_chars(const char*, const char*, double&, chars_format)):
425 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
426 (from_chars(const char*, const char*, _Float128&, chars_format))
427 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
428 defined, otherwise parse a long double and convert to _Float128.
429
430 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
431
432 PR libstdc++/109922
433 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
434 Add deprecated attribute to non-standard overload.
435 * doc/xml/manual/evolution.xml: Document deprecation.
436 * doc/html/*: Regenerate.
437 * testsuite/27_io/manipulators/standard/char/1.cc: Add
438 dg-warning for expected deprecated warning.
439 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
440 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
441 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
442
443 2023-05-30 Alexandre Oliva <oliva@adacore.com>
444
445 * testsuite/20_util/from_chars/4.cc: Skip long double test06
446 on x86_64-vxworks.
447 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
448 x86_64-vxworks.
449
450 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
451
452 PR libstdc++/109822
453 * include/experimental/bits/simd.h (to_native): Use int NTTP
454 as specified in PTS2.
455 (to_compatible): Likewise. Add missing tag to call mask
456 generator ctor.
457 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
458 test.
459
460 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
461
462 * testsuite/experimental/simd/tests/integer_operators.cc:
463 Compute expected value differently to avoid getting turned into
464 a vector shift.
465
466 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
467
468 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
469 double <-> (u)long conversion tests conditional on sizeof(long
470 double) and sizeof(long).
471
472 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
473
474 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
475 Negative __y is UB, so prefer signed compare.
476
477 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
478
479 * testsuite/util/testsuite_allocator.h (PointerBase): Add
480 relational operators.
481
482 2023-05-25 Alexandre Oliva <oliva@adacore.com>
483
484 * testsuite/20_util/to_chars/long_double.cc: Expect execution
485 fail on x86-vxworks.
486
487 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
488
489 PR libstdc++/109949
490 * include/experimental/bits/simd.h (__intrinsic_type): If
491 __ALTIVEC__ is defined, map gnu::vector_size types to their
492 corresponding __vector T types without losing unsignedness of
493 integer types. Also prefer long long over long.
494 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
495 object to the expected unsigned vector type.
496
497 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
498
499 PR libstdc++/109261
500 * include/experimental/bits/simd.h (__intrinsic_type):
501 Specialize __intrinsic_type<double, 8> and
502 __intrinsic_type<double, 16> in any case, but provide the member
503 type only with __aarch64__.
504
505 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
506
507 PR libstdc++/109261
508 * include/experimental/bits/simd_neon.h (_S_reduce): Add
509 constexpr and make NEON implementation conditional on
510 not __builtin_is_constant_evaluated.
511
512 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
513
514 PR libstdc++/109261
515 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
516 Avoid vector builtin subscripting in constant expressions.
517 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
518 (const_where_expression, where_expression, where)
519 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
520 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
521 internal APIs).
522 * include/experimental/bits/simd_builtin.h (__vector_permute)
523 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
524 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
525 (_MaskImplBuiltin::_S_store): Add constexpr.
526 (_CommonImplBuiltin::_S_store_bool_array)
527 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
528 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
529 constant_evaluated case.
530 * include/experimental/bits/simd_fixed_size.h
531 (_S_masked_load): Reword comment.
532 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
533 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
534 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
535 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
536 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
537 constexpr.
538 (_SimdTuple::operator[], _M_set): Add constexpr and add
539 constant_evaluated case.
540 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
541 * include/experimental/bits/simd_scalar.h: Add constexpr.
542 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
543 constexpr and add constant_evaluated case.
544 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
545 (_S_less_equal): Value-initialize to satisfy constexpr
546 evaluation.
547 (_MaskImplX86::_S_load): Add constant_evaluated case.
548 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
549 case. Value-initialize local variables.
550 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
551 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
552 case.
553 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
554 test.
555
556 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
557
558 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
559 __infn into #ifdef'ed block.
560 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
561 constants only when used.
562 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
563 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
564 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
565 Likewise.
566 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
567 Move totest and expect1 into #ifdef'ed block.
568
569 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
570
571 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
572 * doc/html/manual/strings.html: Regenerate.
573
574 2023-05-17 Jakub Jelinek <jakub@redhat.com>
575
576 PR libstdc++/109883
577 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
578
579 2023-05-17 Jakub Jelinek <jakub@redhat.com>
580
581 PR libstdc++/109883
582 * include/c_global/cmath (atan2, fmod, pow): Move
583 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
584 __gnu_cxx::__bfloat16_t overloads.
585 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
586 Likewise.
587 (fma): Move __gnu_cxx::__promote_3 using template after
588 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
589
590 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
591
592 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
593 checks for float_round_style and float_denorm_style.
594
595 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
596
597 * include/bits/c++config: Add system_header pragma.
598
599 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
600
601 * include/std/expected (expected::and_then, expected::or_else)
602 (expected::transform, expected::transform_error): Fix exception
603 specifications as per LWG 3877.
604 (expected<void, E>::and_then, expected<void, E>::transform):
605 Likewise.
606 * testsuite/20_util/expected/lwg3877.cc: New test.
607
608 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
609
610 * include/std/type_traits: Use __bool_constant instead of
611 integral_constant.
612
613 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
614
615 * configure: Regenerate.
616
617 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
618
619 PR libstdc++/109741
620 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
621 * config.h.in: Regenerate.
622 * configure: Regenerate.
623 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
624 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
625 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
626 instead of hardcoded 64.
627
628 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
629
630 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
631 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
632 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
633 * config.h.in: Regenerate.
634 * configure: Regenerate.
635 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
636 instead of _GLIBCXX_USE_C99_FENV_TR1.
637 * include/c_global/cfenv: Likewise.
638 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
639 of _GLIBCXX_USE_C99_CTYPE_TR1.
640
641 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
642
643 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
644 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
645 <inttypes.h> features in C++11 mode and define
646 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
647 * config.h.in: Regenerate.
648 * configure: Regenerate.
649 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
650 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
651 of _GLIBCXX_USE_C99_STDINT_TR1.
652 * include/c_compatibility/inttypes.h: Check
653 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
654 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
655 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
656 * include/c_compatibility/stdatomic.h: Check
657 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
658 * include/c_compatibility/stdint.h: Likewise.
659 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
660 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
661 _GLIBCXX_USE_C99_INTTYPES_TR1 and
662 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
663 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
664 instead of _GLIBCXX_USE_C99_STDINT_TR1.
665 * include/std/atomic: Likewise.
666 * src/c++11/cow-stdexcept.cc: Likewise.
667 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
668 Likewise.
669 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
670 Likewise.
671
672 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
673
674 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
675 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
676 * config.h.in: Regenerate.
677 * configure: Regenerate.
678 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
679 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
680 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
681
682 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
683
684 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
685 assertion to ensure expected exception is throw.
686
687 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
688
689 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
690 printer for chrono::zoned_time for cx11 ABI and tzdb effective
691 target.
692
693 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
694
695 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
696 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
697 * configure: Regenerate.
698
699 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
700
701 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
702 to check for nan, nanf, and nanl.
703 * configure: Regenerate.
704
705 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
706
707 * include/bits/char_traits.h (char_traits<char16_t>): Do not
708 depend on _GLIBCXX_USE_C99_STDINT_TR1.
709 (char_traits<char32_t>): Likewise.
710 * include/experimental/source_location: Likewise.
711
712 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
713
714 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
715 (atomic_int_least16_t, atomic_uint_least16_t)
716 (atomic_int_least32_t, atomic_uint_least32_t)
717 (atomic_int_least64_t, atomic_uint_least64_t)
718 (atomic_int_fast16_t, atomic_uint_fast16_t)
719 (atomic_int_fast32_t, atomic_uint_fast32_t)
720 (atomic_int_fast64_t, atomic_uint_fast64_t)
721 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
722 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
723
724 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
725
726 * include/bits/algorithmfwd.h (shuffle): Do not depend on
727 _GLIBCXX_USE_C99_STDINT_TR1.
728 * include/bits/ranges_algo.h (shuffle): Likewise.
729 * include/bits/stl_algo.h (shuffle): Likewise.
730 * include/ext/random: Likewise.
731 * include/ext/throw_allocator.h (random_condition): Likewise.
732 * include/std/random: Likewise.
733 * src/c++11/cow-string-inst.cc: Likewise.
734 * src/c++11/random.cc: Likewise.
735
736 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
737
738 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
739 _GLIBCXX_USE_C99_STDINT_TR1.
740
741 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
742
743 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
744 on _GLIBCXX_USE_C99_STDINT_TR1.
745
746 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
747
748 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
749 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
750 * testsuite/experimental/string_view/typedefs.cc: Likewise.
751
752 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
753
754 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
755 (auto_locale, auto_ferounding): New class types.
756 (from_chars_impl): Use auto_locale and auto_ferounding.
757
758 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
759
760 PR libstdc++/109772
761 * include/std/chrono (hh_mm_ss::__fits): Remove variable
762 template.
763 (hh_mm_ss::__subseconds): Remove __fits from constraints.
764 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
765 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
766 hh_mm_ss<duration<int, std::pico>>.
767
768 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
769
770 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
771 * include/bits/basic_ios.h: Add static assertion checking
772 traits_type::value_type.
773 * include/bits/basic_string.h: Likewise. Do not rebind
774 allocator, and add static assertion checking its value_type.
775 (basic_string::_Alloc_traits_impl): Remove class template.
776 (basic_string::_S_allocate): New static member function.
777 (basic_string::assign): Use _S_allocate.
778 * include/bits/basic_string.tcc (basic_string::_M_create)
779 (basic_string::reserve, basic_string::_M_replace): Likewise.
780 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
781 Disable for C++20 and later.
782 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
783 Likweise.
784
785 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
786
787 PR libstdc++/109758
788 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
789 and negative zero correctly.
790 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
791
792 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
793
794 * include/bits/hashtable_policy.h
795 (_NodeBuilder<>::_S_build): Use __node_ptr.
796 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
797 (_AllocNode<>): Likewise.
798 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
799 to call std::is_permutation in the non-unique key implementation.
800 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
801 _M_begin() once.
802 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
803 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
804 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
805 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
806 const_iterator.
807 (_Hashtable<>::find): Likewise.
808 (_Hashtable<>::_M_emplace): Likewise.
809 (_Hashtable<>::_M_insert_unique): Likewise.
810
811 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
812
813 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
814 Print floating-point durations correctly.
815 (StdChronoTimePointPrinter): Support printing only the value,
816 not the type name. Uncomment handling for known clocks.
817 (StdChronoZonedTimePrinter): Remove type names from output.
818 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
819 (StdChronoTimeZonePrinter): Add equals sign to output.
820 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
821
822 2023-05-05 Alexandre Oliva <oliva@adacore.com>
823
824 * testsuite/20_util/from_chars/4.cc: Skip long double test06
825 on aarch64-vxworks.
826 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
827 aarch64-vxworks.
828
829 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
830
831 * doc/xml/manual/abi.xml (abi.versioning.history): Document
832 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
833 * doc/html/manual/abi.html: Regenerate.
834
835 2023-05-04 Florian Weimer <fweimer@redhat.com>
836
837 * doc/xml/manual/abi.xml (abi.versioning.history): Add
838 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
839 libgcc_s.
840
841 2023-05-03 Jakub Jelinek <jakub@redhat.com>
842
843 * src/c++17/floating_from_chars.cc
844 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
845 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
846 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
847 _ZSt8to_charsPcS_u9__ieee128.
848 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
849 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
850 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
851 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
852 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
853
854 2023-05-03 Jakub Jelinek <jakub@redhat.com>
855
856 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
857 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
858 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
859 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
860 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
861 versions.
862 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
863 file.
864
865 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
866 Jonathan Wakely <jwakely@redhat.com>
867
868 PR libstdc++/109703
869 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
870 Initialize _M_string_length.
871
872 2023-05-02 Jakub Jelinek <jakub@redhat.com>
873
874 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
875 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
876 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
877 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
878 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
879 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
880 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
881 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
882
883 2023-05-02 Jakub Jelinek <jakub@redhat.com>
884
885 PR libstdc++/109694
886 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
887 -Wattribute-alias.
888
889 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
890
891 * include/bits/random.h (gamma_distribution): Add to the right
892 doxygen group.
893 (discrete_distribution, piecewise_constant_distribution)
894 (piecewise_linear_distribution): Create a new doxygen group and
895 fix the incomplete doxygen comments.
896 * include/bits/uniform_int_dist.h (uniform_int_distribution):
897 Add to doxygen group.
898
899 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
900
901 * include/bits/uses_allocator.h: Add missing @file comment.
902 * include/bits/regex.tcc: Remove stray doxygen comments.
903 * include/experimental/memory_resource: Likewise.
904 * include/std/bit: Tweak doxygen @cond comments.
905 * include/std/expected: Likewise.
906 * include/std/numbers: Likewise.
907
908 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
909
910 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
911 from header paths.
912
913 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
914
915 * include/bits/move.h: Simplify opening/closing namespace std.
916
917 2023-04-28 Jakub Jelinek <jakub@redhat.com>
918
919 PR libstdc++/108969
920 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
921 _ZSt21ios_base_library_initv.
922 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
923 symver and make it the latestp.
924 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
925 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
926 * include/std/iostream: If init_priority attribute is supported
927 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
928 symbol into the object.
929 * configure: Regenerated.
930
931 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
932
933 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
934 * include/std/format: Likewise.
935
936 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
937
938 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
939 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
940
941 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
942
943 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
944 HTML docs.
945 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
946 from doxygen docs.
947 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
948 Likewise.
949 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
950 Likewise.
951 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
952 Likewise.
953 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
954 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
955 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
956 (_DEFINE_BINARY_OPERATOR): Likewise.
957
958 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
959
960 * include/bits/memory_resource.h: Improve doxygen comments.
961 * include/std/memory_resource: Likewise.
962
963 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
964
965 PR libstdc++/40380
966 * include/bits/basic_string.h: Improve doxygen comments.
967 * include/bits/cow_string.h: Likewise.
968 * include/bits/forward_list.h: Likewise.
969 * include/bits/fs_dir.h: Likewise.
970 * include/bits/fs_path.h: Likewise.
971 * include/bits/quoted_string.h: Likewise.
972 * include/bits/stl_bvector.h: Likewise.
973 * include/bits/stl_map.h: Likewise.
974 * include/bits/stl_multimap.h: Likewise.
975 * include/bits/stl_multiset.h: Likewise.
976 * include/bits/stl_set.h: Likewise.
977 * include/bits/stl_vector.h: Likewise.
978 * include/bits/unordered_map.h: Likewise.
979 * include/bits/unordered_set.h: Likewise.
980 * include/std/filesystem: Likewise.
981 * include/std/iomanip: Likewise.
982
983 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
984
985 PR libstdc++/105081
986 * src/c++11/random.cc (__throw_syserr): New function.
987 (random_device::_M_init, random_device::_M_init_pretr1): Use new
988 function for bad tokens.
989 (random_device::_M_getval): Use new function for read errors.
990 * testsuite/util/testsuite_random.h (random_device_available):
991 Change catch handler to use std::system_error.
992
993 2023-04-24 Patrick Palka <ppalka@redhat.com>
994
995 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
996 Fix propagation of sign bit.
997 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
998 non-standard 'signed typedef-name'. Add some compile-time tests
999 for right-shifting a negative __max_diff_type value by more than
1000 one.
1001
1002 2023-04-19 Patrick Palka <ppalka@redhat.com>
1003 Jonathan Wakely <jwakely@redhat.com>
1004
1005 PR c++/100157
1006 * include/bits/utility.h (_Nth_type): Conditionally define in
1007 terms of __type_pack_element if available.
1008 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
1009 additional errors from the new built-in.
1010
1011 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
1012
1013 Revert:
1014 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
1015
1016 PR libstdc++/108969
1017 * src/Makefile.am: Move globals_io.cc to here.
1018 * src/Makefile.in: Regenerate.
1019 * src/c++98/Makefile.am: Remove globals_io.cc from here.
1020 * src/c++98/Makefile.in: Regenerate.
1021 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
1022 symbol name and then export with GLIBCXX_3.4.31 symver.
1023 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
1024 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
1025 Regenerate.
1026 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
1027 Regenerate.
1028 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
1029 Regenerate.
1030 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1031 Regenerate.
1032 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1033 Regenerate.
1034 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
1035 Regenerate.
1036 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
1037 Regenerate.
1038 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
1039 Regenerate.
1040 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
1041
1042 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
1043
1044 Revert:
1045 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
1046
1047 PR libstdc++/108969
1048 * config/abi/pre/gnu.ver: Fix preprocessor condition.
1049
1050 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
1051
1052 * doc/xml/manual/extensions.xml: Fix example to declare and
1053 qualify std::free, and use NULL instead of 0.
1054 * doc/html/manual/ext_demangling.html: Regenerate.
1055 * libsupc++/cxxabi.h: Adjust doxygen comments.
1056
1057 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
1058
1059 PR libstdc++/108969
1060 * config/abi/pre/gnu.ver: Fix preprocessor condition.
1061
1062 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
1063
1064 PR libstdc++/108969
1065 * src/Makefile.am: Move globals_io.cc to here.
1066 * src/Makefile.in: Regenerate.
1067 * src/c++98/Makefile.am: Remove globals_io.cc from here.
1068 * src/c++98/Makefile.in: Regenerate.
1069 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
1070 symbol name and then export with GLIBCXX_3.4.31 symver.
1071 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
1072 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
1073 Regenerate.
1074 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
1075 Regenerate.
1076 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
1077 Regenerate.
1078 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1079 Regenerate.
1080 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
1081 Regenerate.
1082 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
1083 Regenerate.
1084 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
1085 Regenerate.
1086 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
1087 Regenerate.
1088 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
1089
1090 2023-04-18 Patrick Palka <ppalka@redhat.com>
1091
1092 PR libstdc++/108827
1093 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
1094 for C++23.
1095 * include/std/ranges (range_adaptor_closure): Define for C++23.
1096 * include/std/version (__cpp_lib_ranges): Bump value for
1097 C++23.
1098 * testsuite/std/ranges/version_c++23.cc: Bump expected value
1099 of __cpp_lib_ranges.
1100 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
1101
1102 2023-04-18 Patrick Palka <ppalka@redhat.com>
1103
1104 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
1105 Define for C++23.
1106 (__cpp_lib_ranges_iota): Likewise.
1107 (__cpp_lib_ranges_find_last): Likewise.
1108 (__cpp_lib_fold): Rename to ...
1109 (__cpp_lib_ranges_fold): ... this.
1110 * include/std/version: As above.
1111 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
1112 renaming __cpp_lib_fold.
1113 * testsuite/std/ranges/version_c++23.cc: Verify values
1114 of the above feature-test macros.
1115
1116 2023-04-18 Patrick Palka <ppalka@redhat.com>
1117
1118 PR libstdc++/109525
1119 * include/std/ranges (views::_AsConst::operator()): Add
1120 missing const to constant_range test.
1121 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
1122 Improve formatting. Adjust expected type of v2.
1123 (test03): New test.
1124
1125 2023-04-14 Patrick Palka <ppalka@redhat.com>
1126
1127 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
1128 (const_sentinel_t): Likewise.
1129 (range_const_reference_t): Likewise.
1130 (constant_range): Likewise.
1131 (__cust_access::__possibly_const_range): Likewise, replacing ...
1132 (__cust_access::__as_const): ... this.
1133 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
1134 (__cust_access::_CEnd::operator()): Likewise.
1135 (__cust_access::_CRBegin::operator()): Likewise.
1136 (__cust_access::_CREnd::operator()): Likewise.
1137 (__cust_access::_CData::operator()): Likewise.
1138 * include/bits/ranges_util.h (ranges::__detail::__different_from):
1139 Make it an alias of std::__detail::__different_from.
1140 (view_interface::cbegin): Define for C++23.
1141 (view_interface::cend): Likewise.
1142 * include/bits/stl_iterator.h (__detail::__different_from): Define.
1143 (iter_const_reference_t): Define for C++23.
1144 (__detail::__constant_iterator): Likewise.
1145 (__detail::__is_const_iterator): Likewise.
1146 (__detail::__not_a_const_iterator): Likewise.
1147 (__detail::__iter_const_rvalue_reference_t): Likewise.
1148 (__detail::__basic_const_iter_cat):: Likewise.
1149 (const_iterator): Likewise.
1150 (__detail::__const_sentinel): Likewise.
1151 (const_sentinel): Likewise.
1152 (basic_const_iterator): Likewise.
1153 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
1154 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
1155 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
1156 Likewise.
1157 (make_const_iterator): Define for C++23.
1158 (make_const_sentinel): Likewise.
1159 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
1160 (as_const_view): Likewise.
1161 (enable_borrowed_range<as_const_view>): Likewise.
1162 (views::__detail::__is_ref_view): Likewise.
1163 (views::__detail::__can_is_const_view): Likewise.
1164 (views::_AsConst, views::as_const): Likewise.
1165 * include/std/span (span::const_iterator): Likewise.
1166 (span::const_reverse_iterator): Likewise.
1167 (span::cbegin): Likewise.
1168 (span::cend): Likewise.
1169 (span::crbegin): Likewise.
1170 (span::crend): Likewise.
1171 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
1172 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
1173 behave independently of C++20 vs C++23.
1174 * testsuite/std/ranges/version_c++23.cc: Verify value of
1175 __cpp_lib_ranges_as_const macro.
1176 * testsuite/24_iterators/const_iterator/1.cc: New test.
1177 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
1178
1179 2023-04-14 Patrick Palka <ppalka@redhat.com>
1180
1181 * include/bits/ranges_base.h (__cust_access::__as_const)
1182 (__cust_access::_CBegin, __cust::cbegin)
1183 (__cust_access::_CEnd, __cust::cend)
1184 (__cust_access::_CRBegin, __cust::crbegin)
1185 (__cust_access::_CREnd, __cust::crend)
1186 (__cust_access::_CData, __cust::cdata): Move down definitions to
1187 shortly after the definition of input_range.
1188
1189 2023-04-14 Patrick Palka <ppalka@redhat.com>
1190
1191 * include/bits/ranges_algo.h: Include <optional> for C++23.
1192 (__cpp_lib_fold): Define for C++23.
1193 (in_value_result): Likewise.
1194 (__detail::__flipped): Likewise.
1195 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
1196 (__detail::__indirectly_binary_left_foldable): Likewise.
1197 (___detail:__indirectly_binary_right_foldable): Likewise.
1198 (fold_left_with_iter_result): Likewise.
1199 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
1200 (__fold_left_fn, fold_left): Likewise.
1201 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
1202 Likewise.
1203 (__fold_left_first_fn, fold_left_first): Likewise.
1204 (__fold_right_fn, fold_right): Likewise.
1205 (__fold_right_last_fn, fold_right_last): Likewise.
1206 * include/std/version (__cpp_lib_fold): Likewise.
1207 * testsuite/25_algorithms/fold_left/1.cc: New test.
1208 * testsuite/25_algorithms/fold_right/1.cc: New test.
1209
1210 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
1211
1212 * include/std/format (formatter): Add comment to deleted default
1213 constructor of primary template.
1214 (_Checking_scanner): Add static_assert.
1215
1216 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
1217
1218 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
1219 * doc/html/*: Regenerate.
1220
1221 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
1222
1223 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
1224 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
1225 namespace to avoid clashing with libc struct.
1226 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1227 Likewise.
1228 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
1229 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
1230 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
1231 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1232 * testsuite/experimental/synchronized_value.cc: Require gthreads
1233 and add missing option for pthreads targets.
1234
1235 2023-04-12 Patrick Palka <ppalka@redhat.com>
1236
1237 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
1238 for C++23.
1239 (__detail::__range_with_movable_reference): Likewise.
1240 (enumerate_view): Likewise.
1241 (enumerate_view::_Iterator): Likewise.
1242 (enumerate_view::_Sentinel): Likewise.
1243 (views::__detail::__can_enumerate_view): Likewise.
1244 (views::_Enumerate, views::enumerate): Likewise.
1245 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
1246 * testsuite/std/ranges/version_c++23.cc: Verify value of
1247 __cpp_lib_ranges_enumerate.
1248 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
1249
1250 2023-04-12 Patrick Palka <ppalka@redhat.com>
1251
1252 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
1253 Propagate _M_trailing_empty in the const-converting constructor
1254 as per LWG 3904.
1255 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
1256 assertion.
1257 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
1258
1259 2023-04-12 Patrick Palka <ppalka@redhat.com>
1260
1261 * src/c++17/floating_from_chars.cc: Include <algorithm>,
1262 <iterator>, <limits> and <cstdint>.
1263
1264 2023-04-12 Patrick Palka <ppalka@redhat.com>
1265
1266 PR libstdc++/108291
1267 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
1268 parameter types of the lambda wrapper passed to adjacent_find.
1269 (chunk_by_view::_M_find_prev): Likewise.
1270 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
1271 New tests.
1272
1273 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
1274
1275 PR libstdc++/109482
1276 * include/experimental/internet (basic_endpoint::basic_endpoint()):
1277 Ensure that the required union members are active. Only define
1278 as constexpr for C++20 and later.
1279 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
1280 Likewise.
1281 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
1282 check constexpr default constructor for C++20 and later.
1283 * testsuite/experimental/net/internet/endpoint/extensible.cc:
1284 Likewise.
1285
1286 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
1287
1288 * src/c++20/tzdata.zi: Import new file from 2023c release.
1289
1290 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
1291
1292 * include/precompiled/stdc++.h (C++17): Don't double-include
1293 <charconv>, once with wrong conditions.
1294 * testsuite/18_support/96817.cc: Require hosted.
1295 * testsuite/18_support/bad_exception/59392.cc: Ditto.
1296 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
1297 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
1298 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
1299 Ditto.
1300
1301 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
1302
1303 * include/bits/c++config: When __STDC_HOSTED__ is zero,
1304 disable _GLIBCXX_DEBUG and, if it was set, enable
1305 _GLIBCXX_ASSERTIONS.
1306 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
1307 Include <bits/c++config.h> when determining whether debug is
1308 set, in order to inherit the logic from above
1309
1310 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
1311
1312 * testsuite/17_intro/versionconflict.cc: New test.
1313 * include/std/version: Allow disabling the system_header pragma
1314 via _GLIBCXX_TESTING_SYSHDR.
1315
1316 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
1317
1318 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1319 Synchronize the definition block with...
1320 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
1321 ... this one here. Also define the 202202L value, rather than
1322 leaving it up to purely unique_ptr.h, so that the value is
1323 synchronized across all headers.
1324 (__gnu_debug::_Safe_iterator_base): Move into new conditional
1325 block.
1326 * include/std/memory (__cpp_lib_atomic_value_initialization):
1327 Define on freestanding under the same conditions as in
1328 atomic_base.h.
1329 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
1330 Also define on freestanding.
1331 (__cpp_lib_to_chars): Ditto.
1332 (__cpp_lib_gcd): Ditto.
1333 (__cpp_lib_gcd_lcm): Ditto.
1334 (__cpp_lib_raw_memory_algorithms): Ditto.
1335 (__cpp_lib_array_constexpr): Ditto.
1336 (__cpp_lib_nonmember_container_access): Ditto.
1337 (__cpp_lib_clamp): Ditto.
1338 (__cpp_lib_constexpr_char_traits): Ditto.
1339 (__cpp_lib_constexpr_string): Ditto.
1340 (__cpp_lib_sample): Ditto.
1341 (__cpp_lib_lcm): Ditto.
1342 (__cpp_lib_constexpr_iterator): Ditto.
1343 (__cpp_lib_constexpr_char_traits): Ditto.
1344 (__cpp_lib_interpolate): Ditto.
1345 (__cpp_lib_constexpr_utility): Ditto.
1346 (__cpp_lib_shift): Ditto.
1347 (__cpp_lib_ranges): Ditto.
1348 (__cpp_lib_move_iterator_concept): Ditto.
1349 (__cpp_lib_constexpr_numeric): Ditto.
1350 (__cpp_lib_constexpr_functional): Ditto.
1351 (__cpp_lib_constexpr_algorithms): Ditto.
1352 (__cpp_lib_constexpr_tuple): Ditto.
1353 (__cpp_lib_constexpr_memory): Ditto.
1354
1355 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
1356
1357 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
1358 timeout factor on hppa*-*-*.
1359
1360 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
1361
1362 * include/bits/regex.h (sub_match::swap): New function.
1363 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
1364
1365 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
1366
1367 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
1368 example program.
1369 * doc/html/manual/ext_demangling.html: Regenerate.
1370
1371 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
1372
1373 PR tree-optimization/107087
1374 * include/bits/cow_string.h (basic_string::size()): Add
1375 optimizer hint that _S_empty_rep()._M_length is always zero.
1376 (basic_string::length()): Call size().
1377
1378 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
1379
1380 PR libstdc++/109339
1381 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
1382 Add attribute access with access-mode 'none'.
1383 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
1384
1385 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
1386
1387 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
1388 Revert change from member function to data member. Fix for
1389 constant evaluation by detecting which union member is active.
1390 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
1391 flag.
1392
1393 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
1394
1395 PR libstdc++/109242
1396 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
1397 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
1398
1399 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
1400
1401 * include/experimental/internet (ip::make_address): Implement
1402 missing overload.
1403 (ip::address_v4::broadcast()): Avoid undefined shift.
1404 (ip::basic_endpoint): Fix member functions for constexpr.
1405 (ip::basic_endpoint::_M_is_v6): Replace member function with
1406 data member, adjust member functions using it.
1407 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
1408 content.
1409 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
1410 constexpr checks to work in C++14.
1411 * testsuite/experimental/net/internet/address/v4/creation.cc:
1412 Likewise.
1413 * testsuite/experimental/net/internet/endpoint/cons.cc:
1414 Likewise.
1415 * testsuite/experimental/net/internet/network/v4/cons.cc:
1416 Likewise.
1417 * testsuite/experimental/net/internet/network/v4/members.cc:
1418 Likewise.
1419 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
1420
1421 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
1422
1423 * include/std/expected (expected::value() &): Use const lvalue
1424 for unex member passed to bad_expected_access constructor, as
1425 per LWG 3843.
1426
1427 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
1428
1429 PR libstdc++/109340
1430 * include/std/expected (expected::transform): Use
1431 std::remove_cv_t instead of std::remove_cvref_t.
1432 (expected::transform_error): Likewise.
1433 (expected<cv void, E>::transform): Likewise.
1434 (expected<cv void, E>::transform_error): Likewise.
1435 * include/std/optional (transform): Use std::remove_cv_t.
1436 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
1437
1438 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
1439
1440 * include/std/optional (optional): Adjust static assertion to
1441 reject arrays and functions as well as references.
1442 * testsuite/20_util/optional/requirements_neg.cc: New test.
1443
1444 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
1445
1446 PR libstdc++/103387
1447 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
1448 std::use_facet instead of cached _M_num_get facet.
1449 (istream::operator>>(short&)): Likewise.
1450 (istream::operator>>(int&)): Likewise.
1451 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
1452 std::use_facet instead of cached _M_num_put facet.
1453
1454 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
1455
1456 * include/bits/char_traits.h (char_traits::copy): Return without
1457 using memcpy if n==0.
1458 (char_traits::assign): Likewise for memset.
1459
1460 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
1461
1462 PR libstdc++/109299
1463 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
1464 hint for compiler that local strings fit in the local buffer.
1465
1466 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
1467
1468 PR libstdc++/109288
1469 * include/std/chrono (__detail::__get_leap_second_info): Update
1470 expiry date of hardcoded leapseconds list.
1471 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
1472 Likewise.
1473 * src/c++20/tzdata.zi: Import new file from 2023a release.
1474 * testsuite/std/time/time_zone/get_info_local.cc: Only check
1475 transitions for Egypt up to 2014.
1476
1477 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
1478
1479 * include/experimental/bits/simd.h (is_simd_flag_type): New.
1480 (_IsSimdFlagType): New.
1481 (copy_from, copy_to, load ctors): Constrain _Flags using
1482 _IsSimdFlagType.
1483
1484 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
1485
1486 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
1487 _Base::_S_divides if the optimized _S_divides function is hidden
1488 via the preprocessor.
1489
1490 2023-03-27 Jakub Jelinek <jakub@redhat.com>
1491
1492 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
1493 warning if size_t is not unsigned long.
1494
1495 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1496
1497 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
1498 Add overload, as per LWG 3893.
1499 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1500 Check assignment from nullptr.
1501
1502 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1503
1504 * include/std/format (formatter<const charT[N], charT>): Do not
1505 define partial speclialization, as per LWG 3833.
1506 * testsuite/std/format/formatter/requirements.cc: Check it.
1507
1508 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1509
1510 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
1511 as per LWG 3792.
1512 * testsuite/20_util/exchange/constexpr.cc: Check for it.
1513
1514 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1515
1516 * include/std/version (__cpp_lib_format): Define.
1517 * testsuite/std/format/functions/format.cc: Check it.
1518
1519 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1520
1521 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
1522 Pass rvalues to the callback, as now allowed by LWG 3645.
1523 Enforce preconditions on the return value.
1524 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
1525 Adjust.
1526
1527 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1528
1529 * include/std/format: Add a comment noting that the resolution
1530 of LWG 3720 has been applied..
1531
1532 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1533
1534 * include/bits/regex.h (match_results): Add allocator-extended
1535 copy and move constructors, as per LWG 2195.
1536 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
1537
1538 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
1539
1540 * include/bits/stream_iterator.h (istream_iterator): Add
1541 constexpr to copy constructor, as per LWG 3600.
1542 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
1543 Check copy construction.
1544
1545 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1546
1547 * include/experimental/bits/simd_x86.h
1548 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
1549 with __RECIPROCAL_MATH__.
1550
1551 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1552
1553 * include/experimental/bits/simd_detail.h: Don't define
1554 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
1555 * include/experimental/bits/simd_x86.h (_S_divides): Remove
1556 check for __clang__.
1557
1558 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1559
1560 * include/experimental/bits/simd_detail.h: Don't declare the
1561 simd API as constexpr with Clang.
1562 * include/experimental/bits/simd_x86.h (__movm): New.
1563 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
1564 and ?:.
1565 (_SimdImplX86::_S_masked_unary): Clang does not implement the
1566 same builtins. Implement the function using __movm, ?:, and -
1567 operators on vector_size types instead.
1568
1569 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
1570
1571 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
1572 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
1573
1574 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
1575
1576 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1577 formatting.
1578
1579 2023-03-20 Marek Polacek <polacek@redhat.com>
1580
1581 PR c++/109159
1582 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
1583 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
1584 * testsuite/23_containers/span/explicit.cc: Likewise.
1585
1586 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
1587
1588 PR libstdc++/109182
1589 * include/std/expected (expected<void>::expected(in_place_t)):
1590 Remove template-head.
1591
1592 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
1593
1594 PR libstdc++/109165
1595 * testsuite/18_support/coroutines/hash.cc: Use const object
1596 in second call.
1597
1598 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
1599
1600 PR libstdc++/109165
1601 * include/std/coroutine (hash<>::operator()): Add const.
1602 * testsuite/18_support/coroutines/hash.cc: New test.
1603
1604 2023-03-14 Patrick Palka <ppalka@redhat.com>
1605
1606 PR libstdc++/109111
1607 * include/std/ranges (repeat_view): Remove redundant parentheses
1608 in requires-clause.
1609 (repeat_view::_Iterator): Correct the requires-clause.
1610
1611 2023-03-14 Patrick Palka <ppalka@redhat.com>
1612
1613 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
1614 Define.
1615 (__cpp_lib_move_iterator_concept): Define for C++20.
1616 (move_iterator::iterator_concept): Strengthen as per P2520R0.
1617 * include/std/version (__cpp_lib_move_iterator_concept): Define
1618 for C++20.
1619 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
1620
1621 2023-03-14 Patrick Palka <ppalka@redhat.com>
1622
1623 * include/bits/ranges_util.h (view_interface::empty): Add
1624 preferred overloads that use ranges::size when the range is
1625 sized as per LWG 3715.
1626 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
1627
1628 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1629
1630 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
1631 Only define for C++17 and later.
1632
1633 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1634
1635 * src/Makefile.am: Add comment about linker script fragments.
1636 * src/Makefile.in: Regenerate.
1637
1638 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
1639
1640 PR libstdc++/62196
1641 * include/bits/mask_array.h (mask_array): Add assertions to
1642 assignment operators.
1643 * include/std/valarray (valarray::operator[](valarray<bool>)):
1644 Add assertions.
1645 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
1646 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
1647 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
1648 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
1649 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
1650 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
1651 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
1652 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
1653 * testsuite/26_numerics/valarray/mask.cc: New test.
1654
1655 2023-03-13 Jakub Jelinek <jakub@redhat.com>
1656
1657 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1658 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1659
1660 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1661
1662 * doc/Makefile.am: Add comment referring to documentation.
1663 * doc/Makefile.in: Regenerate.
1664
1665 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1666
1667 * doc/html/*: Regenerate.
1668
1669 2023-03-13 Jonny Grant <jg@jguk.org>
1670
1671 * doc/xml/faq.xml: Update copyright year.
1672
1673 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
1674
1675 * include/bits/allocator.h: Fix typo in comment.
1676
1677 2023-03-12 Jakub Jelinek <jakub@redhat.com>
1678
1679 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
1680 if it isn't mangled as DF16b but u6__bf16.
1681
1682 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
1683
1684 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
1685 to https.
1686 * doc/html/manual/documentation_hacking.html: Regenerate.
1687
1688 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
1689
1690 PR libstdc++/109064
1691 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
1692 Remove self-recursion in __init__. Add missing _supports.
1693 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
1694 and unique().
1695
1696 2023-03-09 Patrick Palka <ppalka@redhat.com>
1697
1698 * include/std/ranges
1699 (cartesian_product_view::_Iterator::_Iterator): Remove
1700 constraint on default constructor as per LWG 3849.
1701 (cartesian_product_view::_Iterator::_M_prev): Adjust position
1702 of _Nm > 0 test as per LWG 3820.
1703 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
1704 checking only on sized cartesian products.
1705 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
1706
1707 2023-03-09 Patrick Palka <ppalka@redhat.com>
1708
1709 PR libstdc++/109024
1710 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
1711 LWG 3796.
1712 (repeat_view::_M_pred): Likewise.
1713 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
1714 * testsuite/std/ranges/repeat/1.cc (test05): New test.
1715
1716 2023-03-09 Patrick Palka <ppalka@redhat.com>
1717
1718 PR libstdc++/108362
1719 * include/std/ranges (__detail::__can_single_view): New concept.
1720 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
1721 end of the function declarator.
1722 (__detail::__can_iota_view): New concept.
1723 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
1724 end of the function declarator.
1725 (__detail::__can_istream_view): New concept.
1726 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
1727 end of the function declarator.
1728 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
1729 * testsuite/std/ranges/istream_view.cc (test08): New test.
1730 * testsuite/std/ranges/single_view.cc (test07): New test.
1731
1732 2023-03-09 Patrick Palka <ppalka@redhat.com>
1733
1734 PR libstdc++/107572
1735 * include/std/ranges (cartesian_product_view::end): When
1736 building the tuple of iterators, avoid calling ranges::begin on
1737 the first range if __empty_tail is false.
1738 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
1739
1740 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
1741
1742 PR libstdc++/108882
1743 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
1744 patterns.
1745
1746 2023-03-07 Jakub Jelinek <jakub@redhat.com>
1747
1748 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1749 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1750 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1751 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1752 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1753
1754 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
1755
1756 PR libstdc++/108882
1757 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
1758 not match symbols in namespace std::__gnu_cxx11_ieee128.
1759 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
1760 std::__gnu_cxx11_ieee128::money_{get,put}.
1761
1762 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
1763
1764 * libsupc++/eh_personality.cc: Fix spelling in comment.
1765
1766 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1767
1768 * testsuite/30_threads/async/async.cc (test04): Initialize
1769 steady_start, renamed from steady_begin, next to slow_start.
1770 Increase tolerance for final wait.
1771
1772 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1773
1774 * testsuite/libstdc++-prettyprinters/80276.cc: Add
1775 std::string to debug info.
1776 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1777
1778 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1779
1780 PR libstdc++/104852
1781 PR libstdc++/95989
1782 PR libstdc++/52590
1783 * include/bits/std_thread.h (thread::_M_thread_deps): New
1784 static implicitly-inline member function.
1785 (std::thread template ctor): Pass it to _M_start_thread.
1786 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
1787 parameter, force it live on entry.
1788
1789 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1790
1791 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1792 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1793 Likewise.
1794 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1795 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1796 Likewise.
1797
1798 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
1799
1800 * include/bits/cow_string.h: Fix typo in comment.
1801
1802 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
1803
1804 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
1805 current time zone cannot be determined.
1806 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
1807 HAVE_TZDB macro and test all members unconditionally.
1808
1809 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1810
1811 PR libstdc++/108952
1812 * include/bits/uses_allocator_args.h
1813 (uses_allocator_construction_args): Implement LWG 3527.
1814 * testsuite/20_util/pair/astuple/get-2.cc: New test.
1815 * testsuite/20_util/scoped_allocator/108952.cc: New test.
1816 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
1817
1818 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1819
1820 PR libstdc++/108846
1821 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
1822 Add __assign_one static member function.
1823 (__copy_move<true, false, RA>): Likewise.
1824 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
1825 value.
1826 (__copy_move_backward<IsMove, true, RA>): Likewise.
1827 * testsuite/25_algorithms/copy/108846.cc: New test.
1828 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
1829 * testsuite/25_algorithms/copy_n/108846.cc: New test.
1830 * testsuite/25_algorithms/move/108846.cc: New test.
1831 * testsuite/25_algorithms/move_backward/108846.cc: New test.
1832
1833 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
1834
1835 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
1836 attributes.
1837
1838 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
1839
1840 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
1841 caveat to comment.
1842 * include/bits/basic_string.h (resize_and_overwrite): Add
1843 doxygen comment.
1844
1845 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1846
1847 * include/experimental/bits/simd.h: Line breaks and indenting
1848 fixed to follow the libstdc++ standard.
1849 * include/experimental/bits/simd_builtin.h: Likewise.
1850 * include/experimental/bits/simd_fixed_size.h: Likewise.
1851 * include/experimental/bits/simd_neon.h: Likewise.
1852 * include/experimental/bits/simd_ppc.h: Likewise.
1853 * include/experimental/bits/simd_scalar.h: Likewise.
1854 * include/experimental/bits/simd_x86.h: Likewise.
1855
1856 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1857
1858 PR libstdc++/108030
1859 * include/experimental/bits/simd_fixed_size.h
1860 (_SimdImplFixedSize::_S_broadcast): Replace inline with
1861 _GLIBCXX_SIMD_INTRINSIC.
1862 (_SimdImplFixedSize::_S_generate): Likewise.
1863 (_SimdImplFixedSize::_S_load): Likewise.
1864 (_SimdImplFixedSize::_S_masked_load): Likewise.
1865 (_SimdImplFixedSize::_S_store): Likewise.
1866 (_SimdImplFixedSize::_S_masked_store): Likewise.
1867 (_SimdImplFixedSize::_S_min): Likewise.
1868 (_SimdImplFixedSize::_S_max): Likewise.
1869 (_SimdImplFixedSize::_S_complement): Likewise.
1870 (_SimdImplFixedSize::_S_unary_minus): Likewise.
1871 (_SimdImplFixedSize::_S_plus): Likewise.
1872 (_SimdImplFixedSize::_S_minus): Likewise.
1873 (_SimdImplFixedSize::_S_multiplies): Likewise.
1874 (_SimdImplFixedSize::_S_divides): Likewise.
1875 (_SimdImplFixedSize::_S_modulus): Likewise.
1876 (_SimdImplFixedSize::_S_bit_and): Likewise.
1877 (_SimdImplFixedSize::_S_bit_or): Likewise.
1878 (_SimdImplFixedSize::_S_bit_xor): Likewise.
1879 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
1880 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
1881 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
1882 explicit about not always-inline, yet).
1883 (_SimdImplFixedSize::_S_isinf): Likewise.
1884 (_SimdImplFixedSize::_S_isfinite): Likewise.
1885 (_SimdImplFixedSize::_S_isnan): Likewise.
1886 (_SimdImplFixedSize::_S_isnormal): Likewise.
1887 (_SimdImplFixedSize::_S_signbit): Likewise.
1888
1889 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
1890
1891 PR libstdc++/108856
1892 * include/experimental/bits/simd_builtin.h
1893 (_SimdImplBuiltin::_S_masked_unary): More efficient
1894 implementation of masked inc-/decrement for integers and floats
1895 without AVX2.
1896 * include/experimental/bits/simd_x86.h
1897 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
1898 builtins for masked inc-/decrement.
1899
1900 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1901
1902 * include/experimental/executor (executor): Constrain template
1903 constructors.
1904
1905 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1906
1907 * include/experimental/internet (basic_endpoint): Add missing
1908 constexpr to comparison operators.
1909 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
1910
1911 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1912
1913 * include/experimental/internet (network_v4::netmask()): Avoid
1914 undefined shift.
1915 (network_v4::broadcast()): Optimize and fix for targets with
1916 uint_least32_t wider than 32 bits.
1917 (network_v4::to_string(const Allocator&)): Fix for custom
1918 allocators and optimize using to_chars.
1919 (operator==(const network_v4&, const network_v4&)): Add missing
1920 constexpr.
1921 (operator==(const network_v6&, const network_v6&)): Likewise.
1922 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
1923 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
1924
1925 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1926
1927 * include/experimental/internet (address_4(const bytes_type&)):
1928 Use __builtin_bit_cast if available, otherwise convert to
1929 network byte order.
1930 (address_v4::to_bytes()): Likewise, but convert from network
1931 byte order.
1932 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
1933 incorrect tests. Check for constexpr too.
1934 * testsuite/experimental/net/internet/address/v4/creation.cc:
1935 Likewise.
1936 * testsuite/experimental/net/internet/address/v4/members.cc:
1937 Check that bytes_type is a standard-layout type.
1938
1939 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1940
1941 * include/experimental/internet (address_v4::to_string):
1942 Optimize.
1943 * testsuite/experimental/net/internet/address/v4/members.cc:
1944 Check more addresses.
1945
1946 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1947
1948 * include/ext/aligned_buffer.h (__aligned_buffer): Add
1949 diagnostic pragmas.
1950
1951 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
1954 before dg-do.
1955
1956 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1957
1958 * testsuite/experimental/simd/tests/reductions.cc: Introduce
1959 max_distance as the type-dependent max error.
1960
1961 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1962
1963 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
1964 int. The actual range of these indexes is very small.
1965
1966 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1967
1968 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
1969 (_S_bit_shift_right): Declare constexpr. The implementation was
1970 already expecting constexpr evaluation.
1971
1972 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1973
1974 PR libstdc++/108030
1975 * include/experimental/bits/simd_detail.h
1976 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
1977 __clang__.
1978
1979 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
1980
1981 PR libstdc++/108030
1982 * include/experimental/bits/simd.h (__vector_broadcast):
1983 Implement via __vector_broadcast_impl instead of
1984 __call_with_n_evaluations + 2 lambdas.
1985 (__vector_broadcast_impl): New.
1986
1987 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1988
1989 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
1990 Avoid destruction of the mutex pool.
1991
1992 2023-02-22 Alexandre Oliva <oliva@adacore.com>
1993
1994 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
1995 on vxworks.
1996 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
1997 Likewise.
1998
1999 2023-02-22 Alexandre Oliva <oliva@adacore.com>
2000
2001 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
2002 kernel mode.
2003
2004 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
2005
2006 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2007
2008 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
2009
2010 * include/experimental/bits/simd.h (__extract_part, split):
2011 Use reserved name for template parameter.
2012
2013 2023-02-20 Andreas Schwab <schwab@suse.de>
2014
2015 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2016
2017 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2018
2019 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
2020 * doc/html/faq.html: Regenerate.
2021
2022 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2023
2024 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
2025 between scalars requires the __bit_cast helper function instead
2026 of simd_bit_cast.
2027
2028 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2029
2030 * include/experimental/bits/simd_x86.h
2031 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
2032 (_SimdImplX86::_S_less_equal): Do not call
2033 __builtin_is_constant_evaluated in constexpr-if.
2034
2035 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2036
2037 * testsuite/experimental/simd/tests/bits/verify.h
2038 (verify::verify): Use %zx for size_t in format string.
2039
2040 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2041
2042 * testsuite/experimental/simd/generate_makefile.sh: Generate and
2043 pre-compile pch.h, which includes all headers that do not depend
2044 on command-line macros.
2045 * testsuite/experimental/simd/tests/bits/main.h: New file.
2046 (iterate_abis, main): Moved from verify.h.
2047 * testsuite/experimental/simd/tests/bits/verify.h
2048 (iterate_abis, main): Moved to main.h.
2049 * testsuite/experimental/simd/tests/bits/conversions.h: Add
2050 include guard.
2051 (genHalfBits): Simplify.
2052 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
2053 guard.
2054 (make_alternating_mask): Moved from mask_loadstore.
2055 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
2056 include guard.
2057 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
2058 * testsuite/experimental/simd/tests/mask_loadstore.cc
2059 (make_mask, make_alternating_mask): Removed.
2060 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
2061 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
2062 Removed.
2063 * testsuite/experimental/simd/tests/abs.cc: Only include
2064 bits/main.h.
2065 Ditto.
2066 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
2067 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
2068 * testsuite/experimental/simd/tests/casts.cc: Ditto.
2069 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
2070 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
2071 * testsuite/experimental/simd/tests/generator.cc: Ditto.
2072 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
2073 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
2074 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2075 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
2076 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
2077 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
2078 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
2079 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
2080 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
2081 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
2082 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
2083 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
2084 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
2085 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
2086 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
2087 * testsuite/experimental/simd/tests/simd.cc: Ditto.
2088 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
2089 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
2090 * testsuite/experimental/simd/tests/splits.cc: Ditto.
2091 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
2092 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
2093 * testsuite/experimental/simd/tests/where.cc: Ditto.
2094
2095 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2096
2097 * testsuite/experimental/simd/README.md: Document the timeout
2098 and timeout-factor directives. Minor typo fixed.
2099
2100 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2101
2102 PR libstdc++/108030
2103 * include/experimental/bits/simd_detail.h: Define
2104 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
2105 * include/experimental/bits/simd.h: Annotate lambdas with
2106 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
2107 * include/experimental/bits/simd_builtin.h: Ditto.
2108 * include/experimental/bits/simd_converter.h: Ditto.
2109 * include/experimental/bits/simd_fixed_size.h: Ditto.
2110 * include/experimental/bits/simd_math.h: Ditto.
2111 * include/experimental/bits/simd_neon.h: Ditto.
2112 * include/experimental/bits/simd_x86.h: Ditto.
2113
2114 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
2115
2116 * include/experimental/bits/simd.h
2117 (_SimdWrapper::_M_is_constprop_none_of)
2118 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
2119 computed result still satisfies __builtin_constant_p.
2120
2121 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2122
2123 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
2124 ellipsis character.
2125
2126 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2127
2128 * include/Makefile.am: Add new header.
2129 * include/Makefile.in: Regenerate.
2130 * include/experimental/synchronized_value: New file.
2131 * testsuite/experimental/synchronized_value.cc: New test.
2132
2133 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2134
2135 * include/experimental/optional: Fix header name in comment.
2136
2137 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2138
2139 * include/std/format (__format::_Arg_store): New class template.
2140 (basic_format_args): Remove nested type _Store and add deduction
2141 guide from _Arg_store.
2142 (basic_format_arg, make_format_args): Adjust.
2143 * testsuite/std/format/arguments/lwg3810.cc: New test.
2144
2145 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2146
2147 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
2148 constraints to constructors and add deleted overloads for the
2149 dangling cases, as per P2255R2.
2150 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
2151 make dangling cases ill-formed.
2152 * testsuite/20_util/pair/dangling_ref.cc: New test.
2153
2154 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2155
2156 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
2157
2158 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2159
2160 * include/ext/throw_allocator.h: Use reserved names for
2161 parameters.
2162
2163 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2164
2165 * testsuite/17_intro/names_pstl.cc: Add space after effective
2166 target name.
2167
2168 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2169
2170 * include/pstl/algorithm_fwd.h (__pattern_search_n)
2171 (__brick_unique_copy, __brick_adjacent_find)
2172 (__brick_generate_n, __pattern_generate_n): Use reserved names
2173 for parameters.
2174 * include/pstl/algorithm_impl.h (__brick_unique_copy)
2175 (__pattern_reverse, __brick_generate_n): Likewise.
2176 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
2177 (__prefer_parallel_tag): Likewise.
2178 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
2179 * include/pstl/glue_numeric_defs.h (adjacent_difference):
2180 Likewise.
2181 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
2182 Likewise.
2183 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
2184 * include/pstl/unseq_backend_simd.h (_Combiner)
2185 (__simd_min_element, __simd_minmax_element): Likewise.
2186 * testsuite/17_intro/names_pstl.cc: New test.
2187
2188 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2189
2190 * include/bits/fs_ops.h (create_directory): Use reserved name
2191 for parameter.
2192 * include/bits/ranges_algo.h (__contains_subrange_fn):
2193 Likewise.
2194 * include/bits/regex_automaton.h (_State_base::_M_print):
2195 Likewise.
2196 * include/bits/regex_automaton.tcc(_State_base::_M_print):
2197 Likewise.
2198 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
2199 * include/experimental/bits/fs_ops.h (create_directory):
2200 Likewise.
2201 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
2202 (recursive_timed_mutex:_M_clocklock): Likewise.
2203 * include/std/tuple (basic_common_reference): Likewise.
2204 * libsupc++/cxxabi_init_exception.h
2205 (__cxa_init_primary_exception): Likewise.
2206 * testsuite/17_intro/names.cc: Add checks.
2207
2208 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
2209
2210 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
2211 to www.open-std.org and https.
2212 * doc/html/manual/status.html: Regenerate.
2213
2214 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
2215
2216 PR libstdc++/103934
2217 * include/std/atomic (atomic_flag_wait): Add.
2218 (atomic_flag_wait_explicit): Add.
2219 (atomic_flag_notify): Add.
2220 (atomic_flag_notify_explicit): Add.
2221 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
2222 Add test case to cover missing atomic_flag free functions.
2223
2224 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
2225
2226 PR libstdc++/103934
2227 * include/std/atomic (atomic_flag_test): Add.
2228 (atomic_flag_test_explicit): Add.
2229 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
2230 test case to cover missing atomic_flag free functions.
2231 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
2232 Likewise.
2233
2234 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
2235
2236 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
2237 "The Component Object Model" reference.
2238 * doc/html/manual/policy_data_structures.html: Regenerate.
2239
2240 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
2241
2242 * doc/xml/manual/containers.xml: Tweak a link to N1780
2243 (C++ standard).
2244 * doc/html/manual/associative.html: Regenerate.
2245
2246 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
2247
2248 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
2249 * doc/html/manual/facets.html: Regenerate.
2250
2251 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
2252
2253 * doc/xml/manual/policy_data_structures_biblio.xml: Update
2254 link to "Worst-case efficient priority queues".
2255 * doc/html/manual/policy_data_structures.html: Regenerate.
2256
2257 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
2258
2259 * doc/xml/manual/using.xml: Document newly-freestanding
2260 headers and the effect of the -ffreestanding flag.
2261 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
2262 completed.
2263 * doc/xml/manual/configure.xml: Document that hosted installs
2264 respect __STDC_HOSTED__.
2265 * doc/xml/manual/test.xml: Document how to run tests in
2266 freestanding mode.
2267 * doc/html/*: Regenerate.
2268
2269 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
2270
2271 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
2272 (__find_last_if_fn): Likewise.
2273
2274 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
2275
2276 * include/std/type_traits: Add diagnostic pragmas around
2277 references to deprecated std::aligned_storage and
2278 std::aligned_union traits.
2279 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
2280 Add dg-warning for et c++23.
2281 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
2282 Likewise.
2283 * testsuite/20_util/aligned_storage/value.cc: Likewise.
2284 * testsuite/20_util/aligned_union/1.cc: Likewise.
2285 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
2286 Likewise.
2287
2288 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
2289
2290 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
2291 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
2292 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
2293 * include/std/type_traits (aligned_storage, aligned_union)
2294 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
2295 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
2296 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
2297
2298 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
2299
2300 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
2301 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
2302 consistent with other 'deprecated' macros.
2303 * include/std/type_traits (is_pod, is_pod_v): Use
2304 _GLIBCXX20_DEPRECATED_SUGGEST instead.
2305
2306 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
2307
2308 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
2309 * Makefile.in: Regenerate.
2310 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
2311 There's no history to be compatible with.
2312 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
2313 source files from the build.
2314 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2315 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2316 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
2317 * src/Makefile.in: Regenerate.
2318 * src/c++11/Makefile.in: Regenerate.
2319 * src/c++17/Makefile.in: Regenerate.
2320 * src/c++20/Makefile.in: Regenerate.
2321 * src/c++98/Makefile.in: Regenerate.
2322
2323 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
2324
2325 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
2326 filesystem, libbacktrace and experimental.
2327 * src/Makefile.in: Regenerate.
2328
2329 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
2330
2331 PR libstdc++/108672
2332 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
2333 instead of int32_t.
2334
2335 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
2336
2337 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
2338 * doc/html/manual/documentation_hacking.html: Regenerate.
2339
2340 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
2341
2342 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
2343 storage to the move-from instance when allocators are equal.
2344 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
2345 New test case.
2346
2347 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
2348
2349 * config/os/gnu-linux/os_defines.h [!__linux__]
2350 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
2351
2352 2023-02-03 Patrick Palka <ppalka@redhat.com>
2353
2354 * include/bits/ranges_algo.h (__find_last_fn, find_last):
2355 Define.
2356 (__find_last_if_fn, find_last_if): Define.
2357 (__find_last_if_not_fn, find_last_if_not): Define.
2358 * testsuite/25_algorithms/find_last/1.cc: New test.
2359 * testsuite/25_algorithms/find_last_if/1.cc: New test.
2360 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
2361
2362 2023-02-03 Patrick Palka <ppalka@redhat.com>
2363
2364 * include/bits/ranges_algo.h (out_value_result): Define.
2365 (iota_result): Define.
2366 (__iota_fn, iota): Define.
2367 * testsuite/25_algorithms/iota/1.cc: New test.
2368
2369 2023-02-03 Patrick Palka <ppalka@redhat.com>
2370
2371 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
2372 (__contains_subrange_fn, contains_subrange): Define.
2373 * testsuite/25_algorithms/contains/1.cc: New test.
2374 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
2375
2376 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
2377
2378 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
2379 * doc/html/manual/abi.html: Regenerate.
2380
2381 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
2382
2383 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
2384 errc::function_not_supported instead of errc::not_supported.
2385
2386 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
2387
2388 * include/std/sstream (basic_stringbuf::view): Define for old
2389 std::string ABI.
2390 (basic_istringstream::view, basic_0stringstream::view)
2391 (basic_stringstream::view): Likewise.
2392 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
2393 { dg-require-effective-target cxx11_abi }.
2394 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
2395 Likewise.
2396 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
2397 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
2398 Likewise.
2399 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
2400 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
2401 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
2402 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
2403 Likewise.
2404
2405 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
2406
2407 PR libstdc++/108636
2408 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
2409 conversion operators for directory iterator comparisons with
2410 std::default_sentinel_t.
2411 * include/bits/fs_path.h (path::path(string_view, _Type))
2412 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
2413 definitions to ...
2414 * src/c++17/fs_path.cc: ... here.
2415 * testsuite/27_io/filesystem/path/108636.cc: New test.
2416
2417 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
2418
2419 * include/std/variant (variant::operator=): Implement resolution
2420 of LWG 3585.
2421 * testsuite/20_util/variant/lwg3585.cc: New test.
2422
2423 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
2424
2425 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
2426 link to https.
2427 * doc/html/manual/using_exceptions.html: Regenerate.
2428
2429 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
2430
2431 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
2432 * doc/html/manual/debug.html: Regenerate.
2433
2434 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
2435
2436 * src/c++11/random.cc (random_device::_M_fini): Do not try to
2437 close the file handle if the target doesn't support the
2438 /dev/random and /dev/urandom files.
2439
2440 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
2441
2442 * config/os/generic/error_constants.h (errc::value_too_large)
2443 [__AVR__]: Define.
2444 * src/c++11/system_error.cc
2445 (system_category::default_error_condition) [__AVR__]: Only match
2446 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
2447 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
2448 for ENOENT etc. in switch.
2449 (fs::remove_all) [__AVR__]: Likewise.
2450 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
2451 close etc.
2452
2453 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
2454
2455 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
2456 embed_zoneinfo=no
2457 * configure: Regenerate.
2458
2459 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
2460
2461 PR testsuite/108632
2462 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
2463 struct at end of S0.
2464
2465 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
2466
2467 * doc/xml/manual/shared_ptr.xml: Move links from both
2468 http://open-std.org and http://www.open-std.org to
2469 https://www.open-std.org.
2470 * doc/html/manual/memory.html: Regenerate.
2471
2472 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2473
2474 * doc/xml/manual/appendix_contributing.xml: Adjust link to
2475 ISO C++ standard at ANSI.
2476 Move link to www.open-std.org to https.
2477 * doc/html/manual/appendix_contributing.html: Regenerate.
2478
2479 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2480
2481 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
2482 links to https.
2483 * doc/html/manual/documentation_hacking.html: Regenerate.
2484
2485 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2486
2487 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
2488 * doc/html/manual/abi.html: Regenerate.
2489
2490 2023-01-27 Jakub Jelinek <jakub@redhat.com>
2491
2492 PR libstdc++/108568
2493 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
2494 include features.h if present and then check __GLIBC__ and
2495 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
2496 __GLIBC_PREREQ which isn't defined yet.
2497
2498 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
2499
2500 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
2501 string literal.
2502
2503 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
2504
2505 PR libstdc++/108554
2506 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
2507
2508 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
2509
2510 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
2511 rules named "+" for compatibility with older tzdata.zi files.
2512
2513 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
2514
2515 PR libstdc++/108554
2516 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
2517 nonnull attribute.
2518 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
2519 attributes.
2520 * testsuite/23_containers/map/modifiers/108554.cc: New test.
2521
2522 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
2523
2524 PR libstdc++/108530
2525 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
2526 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
2527
2528 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
2529
2530 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
2531 use https.
2532 * doc/html/manual/bugs.html: Regenerate.
2533
2534 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
2535
2536 PR libstdc++/108530
2537 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
2538 /etc/sysconfig/clock.
2539
2540 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
2541
2542 PR libstdc++/102301
2543 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
2544 std::make_reverse_iterator.
2545 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
2546 (make_from_tuple): Add static assertion from P2255 to diagnose
2547 dangling references.
2548 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
2549 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
2550
2551 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
2552
2553 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
2554 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
2555 (_Safe_iterator::operator++(int)): Use latter.
2556 (_Safe_iterator::operator--(int)): Likewise.
2557 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
2558 check.
2559 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
2560 New.
2561 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
2562 (_Safe_local_iterator::operator++(int)): Use latter.
2563 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
2564 entry associated to the array entry.
2565
2566 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
2567
2568 * include/bits/fs_path.h (u8path): Add deprecated attribute.
2569 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
2570 -Wno-deprecated-declarations for C++20 and later.
2571 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2572 Likewise.
2573 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2574 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2575 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
2576
2577 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
2578
2579 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
2580 Always call _M_fini and _M_getentropy.
2581
2582 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
2583
2584 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
2585 to www.open-std.org to use https.
2586 (COM: Component Model Object Technologies): Rename from...
2587 (The Component Object Model): ...to.
2588 * doc/html/manual/policy_data_structures.html: Regenerate.
2589
2590 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
2591
2592 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
2593 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
2594 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
2595
2596 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
2597
2598 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
2599 of $host. Fix check for file being present during native build.
2600 * configure: Regenerate.
2601
2602 2023-01-17 Martin Liska <mliska@suse.cz>
2603
2604 * src/libbacktrace/Makefile.in: Regenerate.
2605
2606 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
2607
2608 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
2609
2610 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
2611
2612 PR libstdc++/108413
2613 * include/c_compatibility/stdatomic.h: Change copyright line to
2614 be consistent with other headers contributed under DCO terms.
2615 * include/std/expected: Add full stop to copyright line.
2616 * src/c++20/tzdb.cc: Likewise.
2617
2618 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
2619
2620 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
2621 https.
2622 * doc/xml/manual/status_cxx2017.xml: Ditto.
2623 * doc/xml/manual/status_cxx2020.xml: Ditto.
2624 * doc/xml/manual/status_cxx2023.xml: Ditto.
2625 * doc/html/manual/status.html: Regenerate.
2626
2627 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2628
2629 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
2630 and fail gracefully if defining the weak symbol doesn't work.
2631
2632 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
2633
2634 PR libstdc++/108288
2635 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
2636 fix to other iterator category.
2637 (_Safe_iterator<>::operator--(int)): Likewise.
2638 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
2639 Fix deadlock.
2640 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
2641 (invalid_local_iterator_post_increment): New.
2642 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
2643 New test.
2644 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
2645 New test.
2646
2647 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2648
2649 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
2650 dg-options.
2651
2652 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
2653
2654 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
2655
2656 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
2657
2658 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
2659 windows.h. Add pecoff as FORMAT_FILE.
2660 * config.h.in: Regenerate.
2661 * configure: Regenerate.
2662 * src/libbacktrace/Makefile.am: Regenerate.
2663 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
2664
2665 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
2666
2667 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
2668 raw __name if __cxa_demangle could not demangle it.
2669
2670 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2671
2672 PR libstdc++/108409
2673 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
2674 variable.
2675
2676 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2677
2678 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
2679 loading tzdb.
2680 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
2681 effective target.
2682 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2683
2684 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2685
2686 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
2687 --with-libstdcxx-zoneinfo-dir configure option with
2688 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
2689 a directory.
2690 * config.h.in: Regenerate.
2691 * configure: Regenerate.
2692 * doc/xml/manual/configure.xml: Document configure option.
2693 * doc/html/manual/configure.html: Regenerate.
2694 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
2695 * src/c++20/Makefile.in: Regenerate.
2696 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
2697 null pointer if no directory is configured.
2698 (zoneinfo_dir): Replace with ...
2699 (zoneinfo_file): New function.
2700 (tzdata_stream): New istream class.
2701 (remote_version, reload_tzdb): Use tzdata_stream.
2702 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
2703 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
2704 tzdata.zi file in default location.
2705 * src/c++20/tzdata.zi: New file.
2706
2707 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
2708
2709 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
2710 * testsuite/std/time/month_day/io.cc: New test.
2711 * testsuite/std/time/month_day_last/io.cc: New test.
2712 * testsuite/std/time/month_weekday/io.cc: New test.
2713 * testsuite/std/time/month_weekday_last/io.cc: New test.
2714 * testsuite/std/time/weekday_indexed/io.cc: New test.
2715 * testsuite/std/time/weekday_last/io.cc: New test.
2716 * testsuite/std/time/year_month/io.cc: New test.
2717 * testsuite/std/time/year_month_day_last/io.cc: New test.
2718 * testsuite/std/time/year_month_weekday/io.cc: New test.
2719 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
2720
2721 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
2722
2723 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
2724 specifications.
2725 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
2726 export.
2727
2728 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2729
2730 * include/bits/std_mutex.h: Include <errno.h>.
2731
2732 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
2733
2734 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
2735 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
2736 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
2737 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
2738 std::make_unique with a freestanding-compatible wrapper around
2739 unique_ptr.
2740 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
2741 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
2742 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2743 Ditto.
2744 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
2745 of __cpp_lib_ranges in !HOSTED.
2746
2747 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
2748
2749 * include/Makefile.am: Install bits/char_traits.h,
2750 std/string_view
2751 * include/Makefile.in: Regenerate.
2752 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
2753 mbstate-only bits behind appropriate #ifs.
2754 * include/std/string_view: Gate <iostream> functionality behind
2755 HOSTED.
2756 * include/std/version: Enable __cpp_lib_constexpr_string_view
2757 and __cpp_lib_starts_ends_with in !HOSTED.
2758 * include/std/ranges: Re-enable __is_basic_string_view on
2759 freestanding, include <string_view> directly.
2760 * include/precompiled/stdc++.h: Include <string_view> when
2761 !HOSTED too.
2762 * testsuite/20_util/function_objects/searchers.cc: Skip testing
2763 boyer_moore searchers on freestanding
2764 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
2765 <string>-related tests behind __STDC_HOSTED__.
2766 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
2767 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
2768 unused <stdexcept> include.
2769 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
2770 unused <vector> include.
2771 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2772 Guard <string> related testing behind __STDC_HOSTED__.
2773 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2774 Guard <stdexcept> related tests behind __STDC_HOSTED__.
2775 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2776 Ditto.
2777 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2778 Guard <stdexcept> tests behind __STDC_HOSTED__.
2779 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
2780 Enable test on freestanding, guard <stdexcept> bits behind
2781 __STDC_HOSTED__.
2782 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
2783 Guard <stdexcept> bits behind __STDC_HOSTED__.
2784 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
2785 Ditto.
2786
2787 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
2788
2789 PR libstdc++/86419
2790 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
2791 errors in incomplete multibyte sequences.
2792 (utf16_in): Remove surrogates parameter. Fix conditions for
2793 returning partial.
2794 (utf16_out): Fix condition for returning partial.
2795 (ucs2_in): Do not pass surrogates argument to utf16_in.
2796 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
2797 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
2798 tests.
2799 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
2800 test.
2801
2802 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2803
2804 PR libstdc++/108331
2805 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
2806 __GTHREAD_LEGACY_MUTEX_T if defined.
2807
2808 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2809
2810 PR libstdc++/108327
2811 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
2812 Export __try_use_facet specializations for facets in namespace
2813 __gnu_cxx_ldbl128.
2814 * config/os/gnu-linux/ldbl-ieee128-extra.ver
2815 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
2816 __gnu_cxx_ieee128.
2817 * testsuite/util/testsuite_abi.cc: Add to lists of known and
2818 latest versions.
2819
2820 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
2821
2822 * include/bits/std_mutex.h: Remove <system_error> include.
2823 * include/std/condition_variable: Add <bits/error_constants.h>
2824 include.
2825 * include/std/mutex: Likewise.
2826 * include/std/shared_mutex: Likewise.
2827
2828 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2829
2830 PR libstdc++/77691
2831 * include/experimental/memory_resource
2832 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
2833 (do_allocate, do_deallocate): Check it.
2834 * testsuite/experimental/memory_resource/new_delete_resource.cc:
2835 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
2836
2837 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2838
2839 * doc/xml/manual/abi.xml: Add latest library versions.
2840 * doc/html/manual/abi.html: Regenerate.
2841
2842 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
2843
2844 PR libstdc++/107189
2845 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
2846 unused _Alloc_node instance.
2847
2848 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
2849
2850 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
2851 Define as unsigned long if always lock-free, and unsigned int
2852 otherwise.
2853
2854 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2855
2856 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
2857 __catch macros for exception handling.
2858
2859 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2860
2861 PR libstdc++/108221
2862 * include/bits/stl_algobase.h (__lg): Replace six overloads with
2863 a single function template for all integer types.
2864 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
2865 arithmetic results back to _Distance.
2866
2867 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
2868
2869 PR libstdc++/108221
2870 * include/std/span (span::span()): Un-simplify constraint to
2871 work for size_t of lesser rank than int.
2872
2873 2023-01-07 LIU Hao <lh_mouse@126.com>
2874
2875 PR middle-end/108300
2876 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
2877 <windows.h>.
2878 * src/c++11/thread.cc: Likewise.
2879 * src/c++17/fs_ops.cc: Likewise.
2880 * src/filesystem/ops.cc: Likewise.
2881
2882 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2883
2884 PR libstdc++/108228
2885 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
2886
2887 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2888
2889 PR libstdc++/108235
2890 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
2891 template and partial specialization for synchronizing access to
2892 time_zone::_Impl::infos.
2893 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
2894 rules_counter.
2895
2896 2023-01-06 Patrick Palka <ppalka@redhat.com>
2897
2898 PR libstdc++/108260
2899 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
2900 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
2901 (__cpp_lib_ranges_chunk): Likewise.
2902 (__cpp_lib_ranges_slide): Likewise.
2903 (__cpp_lib_ranges_chunk_by): Likewise.
2904 (__cpp_lib_ranges_join_with): Likewise.
2905 (__cpp_lib_ranges_repeat): Likewise.
2906 (__cpp_lib_ranges_stride): Likewise.
2907 (__cpp_lib_ranges_cartesian_product): Likewise.
2908 (__cpp_lib_ranges_as_rvalue): Likewise.
2909 * include/std/version: Ditto.
2910 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
2911 feature-test macro.
2912 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2913 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2914 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2915 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2916 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2917 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2918 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2919 * testsuite/std/ranges/repeat/1.cc: Likewise.
2920 * testsuite/std/ranges/zip/1.cc: Likewise.
2921 * testsuite/std/ranges/version_c++23.cc: New test.
2922
2923 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2924
2925 PR libstdc++/108214
2926 * include/std/bitset (operator>>): Use alloca in the right
2927 scope, not in a constructor.
2928 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
2929
2930 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2931
2932 PR libstdc++/108221
2933 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
2934 Disable visiting floating-point types.
2935
2936 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
2937
2938 PR libstdc++/108288
2939 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
2940 (_Safe_iterator::operator--(int)): Do not hold lock around
2941 construction of return value.
2942
2943 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
2944
2945 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
2946 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
2947 lock release. Revise loop.
2948 (__atomic_add): Likewise.
2949
2950 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2951
2952 PR libstdc++/108212
2953 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
2954 variable.
2955 (StdChronoTimePointPrinter::to_string): Use it.
2956
2957 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2958
2959 PR libstdc++/108290
2960 * include/std/functional (_Bind_front): Add no_unique_address
2961 attribute to data members.
2962 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
2963 size of call wrappers with empty types for targets and bound
2964 arguments.
2965
2966 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2967
2968 PR libstdc++/108211
2969 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
2970 using only last component of the name.
2971
2972 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2973
2974 PR libstdc++/108228
2975 PR libstdc++/108235
2976 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
2977 the latest symbol version.
2978 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
2979 atomic<_Node*> is not always lock free.
2980 (USE_ATOMIC_LIST_HEAD): New macro.
2981 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
2982 definition of weak symbol.
2983 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
2984 (tzdb_list::_Node::_S_list_head): New function for accessing
2985 list head efficiently.
2986 (tzdb_list::_Node::_S_cache_list_head): New function for
2987 updating _S_list_head.
2988
2989 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
2990
2991 PR libstdc++/108265
2992 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
2993 duration rep is unsigned.
2994 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
2995
2996 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
2997
2998 PR libstdc++/108228
2999 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
3000 Add __gnu_cxx::zoneinfo_dir_override().
3001
3002 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
3003
3004 PR libstdc++/108258
3005 * include/std/array (__array_traits<T, 0>::operator T*()): Add
3006 constexpr.
3007 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
3008 std::array<T, 0>::data().
3009
3010 \f
3011 Copyright (C) 2023 Free Software Foundation, Inc.
3012
3013 Copying and distribution of this file, with or without modification,
3014 are permitted in any medium without royalty provided the copyright
3015 notice and this notice are preserved.