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