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