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