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