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