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