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