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