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