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