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