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