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