]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
a91c0d05
GA
12023-02-02 Jonathan Wakely <jwakely@redhat.com>
2
3 Backported from master:
4 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
5
6 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7 close the file handle if the target doesn't support the
8 /dev/random and /dev/urandom files.
9
102023-02-02 Jonathan Wakely <jwakely@redhat.com>
11
12 Backported from master:
13 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
14
15 * config/os/generic/error_constants.h (errc::value_too_large)
16 [__AVR__]: Define.
17 * src/c++11/system_error.cc
18 (system_category::default_error_condition) [__AVR__]: Only match
19 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
20 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
21 for ENOENT etc. in switch.
22 (fs::remove_all) [__AVR__]: Likewise.
23 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
24 close etc.
25
262023-02-02 Patrick Palka <ppalka@redhat.com>
27
28 Backported from master:
29 2022-11-06 Patrick Palka <ppalka@redhat.com>
30
31 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
32 Declare inline. Remove redundant static specifier.
33 (__detail::__atomic_spin_count_relax): Declare inline.
34 (__detail::__atomic_spin_count): Likewise.
35 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
36 Declare inline for C++17. Declare constexpr. Remove
37 redundant const and static specifiers.
38 * include/bits/regex_error.h (regex_constants::error_collate):
39 Declare inline for C++17 as per P0607R0.
40 (regex_constants::error_ctype): Likewise.
41 (regex_constants::error_escape): Likewise.
42 (regex_constants::error_backref): Likewise.
43 (regex_constants::error_brack): Likewise.
44 (regex_constants::error_paren): Likewise.
45 (regex_constants::error_brace): Likewise.
46 (regex_constants::error_badbrace): Likewise.
47 (regex_constants::error_range): Likewise.
48 (regex_constants::error_space): Likewise.
49 (regex_constants::error_badrepeat): Likewise.
50 (regex_constants::error_complexity): Likewise.
51 (regex_constants::error_stack): Likewise.
52 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
53 Likewise. Remove redundant static specifier.
54 * include/pstl/execution_defs.h (execution::seq): Declare inline
55 for C++17 as per P0607R0.
56 (execution::par): Likewise.
57 (execution::par_unseq): Likewise.
58 (execution::unseq): Likewise.
59
61ef24af
GA
602023-01-18 Jonathan Wakely <jwakely@redhat.com>
61
62 Backported from master:
63 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
64
65 PR libstdc++/105730
66 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
67 Access private data member of base class and call its wait
68 member.
69
e95fa8c0
GA
702023-01-16 Jonathan Wakely <jwakely@redhat.com>
71
72 Backported from master:
73 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
74
75 PR libstdc++/106183
76 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
77 Move increment of _M_ver here.
78 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
79 Use relaxed memory order and always notify all waiters.
80 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
81 Check value again after locking mutex.
82 (__waiter_base::_M_notify): Remove increment of _M_ver.
83
e824a270
GA
842023-01-05 Jonathan Wakely <jwakely@redhat.com>
85
86 Backported from master:
87 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
88
89 PR libstdc++/108265
90 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
91 duration rep is unsigned. Remove incorrect noexcept-specifier.
92 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
93 floating-point representations. Check default construction.
94
df5fb956
GA
952022-12-21 Jonathan Wakely <jwakely@redhat.com>
96
97 Backported from master:
98 2022-11-23 Jonathan Wakely <jwakely@redhat.com>
99
100 PR libstdc++/107814
101 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
102 Use a static buffer with space after it.
103
1042022-12-21 Jonathan Wakely <jwakely@redhat.com>
105
106 Backported from master:
107 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
108
109 * include/std/expected (expected::_M_swap_val_unex): Guard the
110 correct object.
111 (expected::swap): Move is_swappable
112 requirement from static_assert to constraint.
113 (swap): Likewise.
114 (operator==): Remove noexcept-specifier.
115 * testsuite/20_util/expected/swap.cc: Check swapping of
116 types without non-throwing move constructor. Check constraints
117 on swap.
118 * testsuite/20_util/expected/unexpected.cc: Check constraints on
119 swap.
120 * testsuite/20_util/expected/equality.cc: New test.
121
6b8f4f74
GA
1222022-12-14 Jonathan Wakely <jwakely@redhat.com>
123
124 Backported from master:
125 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
126
127 PR libstdc++/108097
128 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
129 multiply N by sizeof(value_type) when allocating.
130
ed8d7eca
GA
1312022-11-24 Jonathan Wakely <jwakely@redhat.com>
132
133 Backported from master:
134 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
135
136 * include/std/memory: Do not include <bits/stl_algobase.h>.
137
1382022-11-24 Jonathan Wakely <jwakely@redhat.com>
139
140 Backported from master:
141 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
142
143 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
144 const qualifier.
145 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
146 Likewise.
147
1482022-11-24 Jonathan Wakely <jwakely@redhat.com>
149
150 Backported from master:
151 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
152
153 * include/std/expected (expected::_M_invalid): Remove.
154
1552022-11-24 Jonathan Wakely <jwakely@redhat.com>
156
157 Backported from master:
158 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
159
160 * include/bits/chrono.h (duration): Check preconditions on
161 template arguments before using them.
162
1632022-11-24 Jonathan Wakely <jwakely@redhat.com>
164
165 Backported from master:
166 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
167
168 * include/bits/fs_path.h (path::filename()): Fix dangling
169 reference.
170
1712022-11-24 Jonathan Wakely <jwakely@redhat.com>
172
173 Backported from master:
174 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
175
176 * doc/xml/manual/intro.xml: Document LWG 1203.
177 * doc/html/*: Regenerate.
178
1792022-11-24 Jonathan Wakely <jwakely@redhat.com>
180
181 Backported from master:
182 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
183
184 * include/std/barrier: Add missing runtime exception.
185
1862022-11-24 Jonathan Wakely <jwakely@redhat.com>
187
188 Backported from master:
189 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
190
191 * include/bits/fs_dir.h (directory_iterator): Add comparison
192 with std::default_sentinel_t. Remove redundant operator!= for
193 C++20.
194 * (recursive_directory_iterator): Likewise.
195 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
196 (default_sentinel_t, default_sentinel): Define even if concepts
197 are not supported.
198 * include/bits/regex.h (regex_iterator): Add comparison with
199 std::default_sentinel_t. Remove redundant operator!= for C++20.
200 (regex_token_iterator): Likewise.
201 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
202 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
203 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
204 New test.
205 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
206 New test.
207
2082022-11-24 Jonathan Wakely <jwakely@redhat.com>
209
210 Backported from master:
211 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
212
213 PR libstdc++/91456
214 * include/std/type_traits (__is_nothrow_invocable): Remove.
215 (__is_invocable_impl::__nothrow_type): New member type which
216 checks if the conversion can throw.
217 (__is_nt_invocable_impl): Replace class template with alias
218 template to __is_nt_invocable_impl::__nothrow_type.
219 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
220 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
221 macro used by value_ext.cc test.
222 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
223 test for non-standard __is_nothrow_invocable trait.
224
04126a40
GA
2252022-11-22 Jonathan Wakely <jwakely@redhat.com>
226
227 PR libstdc++/106201
228 * include/bits/fs_path.h (filesystem::swap(path&, path&)):
229 Replace with abbreviated function template.
230 * include/experimental/bits/fs_path.h (filesystem::swap):
231 Likewise.
232 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
233 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
234
2352022-11-22 Jonathan Wakely <jwakely@redhat.com>
236
237 Backported from master:
238 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
239
240 PR libstdc++/107801
241 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
242 for targets with 16-bit int.
243
964af399
GA
2442022-11-14 Jonathan Wakely <jwakely@redhat.com>
245
246 * include/bits/mofunc_impl.h (move_only_function::__param_t):
247 Use __is_scalar instead of is_trivially_copyable.
248 * testsuite/20_util/move_only_function/call.cc: Check parameters
249 involving incomplete types.
250
2512022-11-14 Jonathan Wakely <jwakely@redhat.com>
252
253 Backported from master:
254 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
255
256 PR libstdc++/95048
257 * include/bits/fs_path.h (path::_Codecvt): New class template
258 that selects the kind of code conversion done.
259 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
260 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
261 be used for Windows and POSIX.
262 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
263 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
264 (path::_S_str_convert(basic_string_view<value_type>, const A&)):
265 Simplify nested conditions.
266 * include/experimental/bits/fs_path.h (path::_Cvt): Define
267 nested typedef controlling type of code conversion done.
268 (path::_Cvt::_S_wconvert): Use new typedef.
269 (path::string(const A&)): Likewise.
270 * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
271 * testsuite/experimental/filesystem/path/construct/95048.cc: New
272 test.
273
2742022-11-14 Nathaniel Shead <nathanieloshead@gmail.com>
275
276 Backported from master:
277 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
278
279 PR libstdc++/103295
280 * include/bits/basic_string.h (_M_use_local_data): Set active
281 member to _M_local_buf.
282
253a85be
GA
2832022-11-08 Jonathan Wakely <jwakely@redhat.com>
284
285 Backported from master:
286 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
287
288 * doc/xml/authors.xml: Remove empty author element.
289 * doc/xml/manual/spine.xml: Likewise.
290 * doc/html/manual/index.html: Regenerate.
291
0aaef833
GA
2922022-10-19 Alexandre Oliva <oliva@adacore.com>
293
294 Backported from master:
295 2022-06-22 Alexandre Oliva <oliva@adacore.com>
296
297 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
298 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
299
487307a1
GA
3002022-09-29 Jonathan Wakely <jwakely@redhat.com>
301
302 Backported from master:
303 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
304
305 * doc/xml/manual/evolution.xml: Document std::bind API
306 changes.
307 * doc/xml/manual/intro.xml: Document LWG 2487 status.
308 * doc/xml/manual/using.xml: Clarify default value of
309 _GLIBCXX_USE_DEPRECATED.
310 * doc/html/*: Regenerate.
311 * include/std/functional (_Bind::operator()(Args&&...) volatile)
312 (_Bind::operator()(Args&&...) const volatile)
313 (_Bind_result::operator()(Args&&...) volatile)
314 (_Bind_result::operator()(Args&&...) const volatile): Replace
315 with deleted overload for C++20 and later.
316 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
317 warnings in C++17.
318 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
319 ill-formed in C++20.
320
7dc6d2f1
GA
3212022-09-16 Jonathan Wakely <jwakely@redhat.com>
322
323 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
324 * doc/html/manual/abi.html: Regenerate.
325
99c0c616
GA
3262022-09-12 Patrick Palka <ppalka@redhat.com>
327
328 Backported from master:
329 2022-09-12 Patrick Palka <ppalka@redhat.com>
330
331 PR libstdc++/106320
332 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
333
156607e5
GA
3342022-09-07 Jonathan Wakely <jwakely@redhat.com>
335
336 Backported from master:
337 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
338
339 PR libstdc++/106695
340 * include/bits/std_thread.h (thread::_State_impl): Forward
341 individual arguments to _Invoker constructor.
342 (thread::_Invoker): Add constructor. Delete copies.
343 * include/std/future (__future_base::_Deferred_state): Forward
344 individual arguments to _Invoker constructor.
345 (__future_base::_Async_state_impl): Likewise.
346 * testsuite/30_threads/async/106695.cc: New test.
347 * testsuite/30_threads/thread/106695.cc: New test.
348
3492022-09-07 Jonathan Wakely <jwakely@redhat.com>
350
351 Backported from master:
352 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
353
354 PR libstdc++/106607
355 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
356 Use built-ins to check for integer overflow in back-reference
357 number.
358 * testsuite/28_regex/basic_regex/106607.cc: New test.
359
cce15df5
GA
3602022-08-24 Jonathan Wakely <jwakely@redhat.com>
361
362 Backported from master:
363 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
364
365 PR libstdc++/106589
366 * include/std/variant (__do_visit): Handle is_void<R> for zero
367 argument case.
368 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
369
fdde00a9
GA
3702022-08-23 Jonathan Wakely <jwakely@redhat.com>
371
372 Backported from master:
373 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
374
375 PR libstdc++/105678
376 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
377 requirement for using std::stacktrace. Also adjust -frtti and
378 -fexceptions to document non-default (i.e. negative) forms.
379 * doc/html/*: Regenerate.
380
2ee5e430
RB
3812022-08-19 Release Manager
382
383 * GCC 12.2.0 released.
384
4178af1a
GA
3852022-08-05 Jonathan Wakely <jwakely@redhat.com>
386
387 Backported from master:
388 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
389
390 * include/std/string_view (basic_string_view(Range&&)): Add
391 explicit as per P2499R0.
392 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
393 Adjust implicit conversions. Check implicit conversions fail.
394 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
395 Likewise.
396
3972022-08-05 Jonathan Wakely <jwakely@redhat.com>
398
399 Backported from master:
400 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
401
402 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
403 (bad_expected_access::_M_val): Likewise.
404
4052022-08-05 Jonathan Wakely <jwakely@redhat.com>
406
407 Backported from master:
408 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
409
410 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
411 value to 202207L.
412 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
413 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
414 for new value.
415 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
416 Likewise.
417
c749de49
GA
4182022-08-03 Jonathan Wakely <jwakely@redhat.com>
419
420 Backported from master:
421 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
422
423 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
424 current() returning _At_path.
425 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
426 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
427 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
428 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
429 current() returning _At_path.
430 (_Dir::_Dir, _Dir::open_subdir): Adjust.
431
4322022-08-03 Jonathan Wakely <jwakely@redhat.com>
433
434 Backported from master:
435 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
436
437 PR libstdc++/104443
438 * include/bits/stl_iterator.h (common_iterator::operator->):
439 Change return type to just auto.
440
4412022-08-03 Jonathan Wakely <jwakely@redhat.com>
442
443 Backported from master:
444 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
445
446 PR libstdc++/106248
447 * include/std/istream [C++17] (operator>>(istream&, char*)):
448 Set eofbit if we stopped extracting at EOF.
449 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
450 New test.
451 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
452 New test.
453
4542022-08-03 Jonathan Wakely <jwakely@redhat.com>
455
456 Backported from master:
457 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
458
459 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
460 * include/experimental/bits/fs_ops.h: Likewise.
461 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
462 results of absolute and canonical.
463 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
464 discarded result to void.
465 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
466 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
467 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
468 * testsuite/27_io/filesystem/operations/read_symlink.cc:
469 Likewise.
470 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
471 * testsuite/27_io/filesystem/operations/symlink_status.cc:
472 Likewise.
473 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
474 Likewise.
475 * testsuite/experimental/filesystem/operations/canonical.cc:
476 Likewise.
477 * testsuite/experimental/filesystem/operations/exists.cc:
478 Likewise.
479 * testsuite/experimental/filesystem/operations/is_empty.cc:
480 Likewise.
481 * testsuite/experimental/filesystem/operations/read_symlink.cc:
482 Likewise.
483 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
484 Likewise.
485
4862022-08-03 Jonathan Wakely <jwakely@redhat.com>
487
488 Backported from master:
489 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
490
491 PR libstdc++/105995
492 * include/bits/basic_string.h (_M_use_local_data): Initialize
493 the entire SSO buffer.
494 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
495
4962022-08-03 Jonathan Wakely <jwakely@redhat.com>
497
498 Backported from master:
499 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
500
501 * include/bits/new_allocator.h: Fix indentation.
502 * include/ext/malloc_allocator.h: Likewise.
503
5042022-08-03 Jonathan Wakely <jwakely@redhat.com>
505
506 Backported from master:
507 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
508
509 PR libstdc++/105957
510 * include/bits/allocator.h (allocator::allocate): Check for
511 overflow in constexpr allocation.
512 * testsuite/20_util/allocator/105975.cc: New test.
513
5142022-08-03 Jonathan Wakely <jwakely@redhat.com>
515
516 Backported from master:
517 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
518
519 PR libstdc++/105844
520 * include/experimental/numeric (experimental::gcd): Simplify
521 assertions. Use __abs_r instead of __absu.
522 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
523 overflow can be detected.
524 * include/std/numeric (__detail::__absu): Rename to __abs_r and
525 change to allow signed result type, so overflow can be detected.
526 (__detail::__lcm): Remove.
527 (gcd): Simplify assertions. Use __abs_r instead of __absu.
528 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
529 be detected.
530 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
531 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
532 * testsuite/26_numerics/gcd/105844.cc: New test.
533 * testsuite/26_numerics/lcm/105844.cc: New test.
534
5e45d078
GA
5352022-07-26 Thomas Rodgers <trodgers@redhat.com>
536
537 Backported from master:
538 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
539
540 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
541
2a1263d3
GA
5422022-07-22 Jonathan Wakely <jwakely@redhat.com>
543
544 Backported from master:
545 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
546
547 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
548 Always store pathname if we don't have openat or unlinkat,
549 because the full path is needed to open sub-directories and
550 remove entries.
551
5522022-07-22 Alexandre Oliva <oliva@adacore.com>
553
554 Backported from master:
555 2022-06-27 Alexandre Oliva <oliva@adacore.com>
556
557 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
558 _GLIBCXX_HAVE_OPENAT.
559
5602022-07-22 Alexandre Oliva <oliva@adacore.com>
561
562 Backported from master:
563 2022-06-24 Alexandre Oliva <oliva@adacore.com>
564
565 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
566 openat.
567 * configure, config.h.in: Rebuilt.
568 * src/filesystem/dir-common.h (openat): Use ::openat if
569 _GLIBCXX_HAVE_OPENAT.
570 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
571 _GLIBCXX_HAVE_OPENAT.
572
5732022-07-22 Jonathan Wakely <jwakely@redhat.com>
574
575 Backported from master:
576 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
577
578 * include/std/stacktrace: Do not include <cxxabi.h>.
579 (__cxa_demangle): Declare.
580
64edeadb
GA
5812022-07-21 Jonathan Wakely <jwakely@redhat.com>
582
583 Backported from master:
584 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
585
586 PR libstdc++/100823
587 * include/bits/stl_iterator.h (common_iterator): Define move
588 constructor and move assignment operator.
589 (common_iterator::_M_assign): New function implementing
590 assignment.
591 (common_iterator::operator=): Use _M_assign.
592 (common_iterator::_S_valueless): New constant.
593 * testsuite/24_iterators/common_iterator/100823.cc: New test.
594
5952022-07-21 Jonathan Wakely <jwakely@redhat.com>
596
597 Backported from master:
598 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
599
600 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
601 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
602 friend declaration. Do not move argument in copy constructor.
603 * testsuite/24_iterators/common_iterator/1.cc: Check for
604 noexcept constructibnle/assignable.
605
6062022-07-21 Nathan Sidwell <nathan@acm.org>
607
608 Backported from master:
609 2022-05-26 Nathan Sidwell <nathan@acm.org>
610
611 * include/bits/hashtable.h: Include required headers.
612 * include/bits/hashtable_policy.h: Likewise.
613 * include/bits/stl_heap.h: Likewise.
614 * include/bits/stl_iterator_base_funcs.h: Likewise.
615
6162022-07-21 Jonathan Wakely <jwakely@redhat.com>
617
618 Backported from master:
619 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
620
621 * include/bits/utility.h: Fix comment typos.
622
6232022-07-21 Jonathan Wakely <jwakely@redhat.com>
624
625 Backported from master:
626 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
627
628 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
629 functions are available.
630
6312022-07-21 Jonathan Wakely <jwakely@redhat.com>
632
633 Backported from master:
634 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
635
636 * testsuite/26_numerics/random/random_device/entropy.cc: Use
637 numeric_limits<unsigned>::digits.
638
6392022-07-21 Marco Falke <falke.marco@gmail.com>
640
641 Backported from master:
642 2022-07-19 Marco Falke <falke.marco@gmail.com>
643
644 * include/std/charconv (__from_chars_alnum_to_val): Replace
645 implicit conversion from int to unsigned char with explicit
646 cast.
647
6482022-07-21 Jonathan Wakely <jwakely@redhat.com>
649
650 Backported from master:
651 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
652
653 PR libstdc++/88881
654 * src/filesystem/ops.cc (has_trailing_slash): New helper
655 function.
656 (fs::status): Strip trailing slashes.
657 (fs::symlink_status): Likewise.
658 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
659 Clean the environment before each test and use TMP instead of
660 TMPDIR so the test passes on Windows.
661
6622022-07-21 Jonathan Wakely <jwakely@redhat.com>
663
664 Backported from master:
665 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
666
667 PR libstdc++/105880
668 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
669 prevent destruction during termination.
670 (__eh_globals_init::_M_init): Replace with static member _S_init.
671 (__cxxabiv1::__cxa_get_globals_fast): Update.
672 (__cxxabiv1::__cxa_get_globals): Likewise.
673
e02edb33
GA
6742022-07-07 Jonathan Wakely <jwakely@redhat.com>
675
676 Backported from master:
677 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
678
679 PR libstdc++/106162
680 * include/Makefile.am (largefile-config.h): Add
681 stamp-${host_alias} prerequisite.
682 * include/Makefile.in: Regenerate.
683
6842022-07-07 Jonathan Wakely <jwakely@redhat.com>
685
686 Backported from master:
687 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
688
689 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
690 rmdir to remove directories.
691 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
692 Likewise.
693
e1109101
GA
6942022-06-14 Jonathan Wakely <jwakely@redhat.com>
695
696 Backported from master:
697 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
698
699 * include/std/atomic (__atomic_val_t): Use __type_identity_t
700 instead of atomic<T>::value_type, as per LWG 3220.
701 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
702
7032022-06-14 Mark Mentovai <mark@mentovai.com>
704
705 Backported from master:
706 2022-06-13 Mark Mentovai <mark@mentovai.com>
707
708 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
709 Rename to __nul_terminated to avoid colliding with a macro in
710 Apple's SDK.
711
669fc762
GA
7122022-06-08 Jonathan Wakely <jwakely@redhat.com>
713
714 Backported from master:
715 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
716
717 PR libstdc++/105671
718 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
719 always_inline attribute.
720
7212022-06-08 Jonathan Wakely <jwakely@redhat.com>
722
723 Backported from master:
724 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
725
726 PR libstdc++/105681
727 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
728 Limit ga_sizes array to values that fit in size_t.
729 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
730 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
731 (sfmt216091_64): Do not declare.
732
7332022-06-08 Jonathan Wakely <jwakely@redhat.com>
734
735 Backported from master:
736 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
737
738 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
739 here.
740 * include/bits/cow_string.h: Include it here.
741
c2476f7b
GA
7422022-05-27 Jonathan Wakely <jwakely@redhat.com>
743
744 Backported from master:
745 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
746
747 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
748 lookup for ios_errc and future_errc check versioned namespace.
749 (StdAtomicPrinter): Strip versioned namespace from typename.
750
7512022-05-27 François Dumont <fdumont@gcc.gnu.org>
752
753 Backported from master:
754 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
755
756 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
757 Strip typename from version namespace.
758
7592022-05-27 Jonathan Wakely <jwakely@redhat.com>
760
761 Backported from master:
762 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
763
764 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
765 versioned namespace from the template argument too.
766
7672022-05-27 Jonathan Wakely <jwakely@redhat.com>
768
769 Backported from master:
770 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
771
772 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
773 Add 'constexpr' as per LWG 3643.
774 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
775
7762022-05-27 Jonathan Wakely <jwakely@redhat.com>
777
778 Backported from master:
779 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
780
781 * include/std/memory_resource (polymorphic_allocator): Add
782 non-template equality operator, as proposed for LWG 3683.
783 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
784
7852022-05-27 Jonathan Wakely <jwakely@redhat.com>
786
787 Backported from master:
788 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
789
790 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
791 Run fewer iterations for simulator targets.
792 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
793 Likewise.
794 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
795 Likewise.
796 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
797 Likewise.
798 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
799 Likewise.
800 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
801 Likewise.
802 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
803 Likewise.
804
8052022-05-27 Jonathan Wakely <jwakely@redhat.com>
806
807 Backported from master:
808 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
809
810 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
811 namespace.
812 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
813
8142022-05-27 Jonathan Wakely <jwakely@redhat.com>
815
816 Backported from master:
817 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
818
819 * include/bits/mofunc_impl.h: Fix doxygen command.
820
8212022-05-27 Jonathan Wakely <jwakely@redhat.com>
822
823 Backported from master:
824 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
825
826 * include/std/future (launch): Make operators noexcept.
827
325d82b0
GA
8282022-05-16 Jonathan Wakely <jwakely@redhat.com>
829
830 Backported from master:
831 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
832
833 * doc/xml/manual/prerequisites.xml: Fix attributes for external
834 hyperlink.
835 * doc/html/manual/setup.html: Regenerate.
836
8372022-05-16 Jonathan Wakely <jwakely@redhat.com>
838
839 Backported from master:
840 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
841
842 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
843 * doc/html/*: Regenerate.
844
8452022-05-16 Jonathan Wakely <jwakely@redhat.com>
846
847 Backported from master:
848 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
849
850 * doc/xml/manual/intro.xml: Include new chapter.
851 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
852 * doc/xml/manual/status_cxx2023.xml: New file.
853 * doc/html/*: Regenerate.
854
8552022-05-16 Jonathan Wakely <jwakely@redhat.com>
856
857 Backported from master:
858 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
859
860 * doc/html/manual/status.html: Regenerate.
861 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
862 C++20 bit operations.
863
52991af6
GA
8642022-05-13 Alexandre Oliva <oliva@adacore.com>
865
866 Backported from master:
867 2022-05-06 Alexandre Oliva <oliva@adacore.com>
868
869 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
870 for double, long long, and 64-bit long intrinsic types.
871 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
872 preexisting long double diagnostic, adjust no-VSX double
873 diagnostic to cover 64-bit long double as well.
874
d74cade6
GA
8752022-05-10 Jonathan Wakely <jwakely@redhat.com>
876
877 Backported from master:
878 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
879
880 PR libstdc++/105284
881 * include/std/iosfwd: Add declarations for <spanstream> class
882 templates and typedefs.
883 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
884 (basic_ospanstream, basic_spanstream): Remove default template
885 arguments.
886 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
887 declarations.
888 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
889 default arguments.
890
8912022-05-10 Jonathan Wakely <jwakely@redhat.com>
892
893 Backported from master:
894 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
895
896 PR libstdc++/105284
897 * include/std/iosfwd: Add declarations for <synstream> class
898 templates and typedefs.
899 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
900 Remove default template arguments.
901 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
902 * testsuite/27_io/headers/iosfwd/types.cc: New test.
903
6d7d4f59
GA
9042022-05-09 Jonathan Wakely <jwakely@redhat.com>
905
906 Backported from master:
907 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
908
909 PR libstdc++/104731
910 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
911 Use a trailing char array as storage for dirent::d_name.
912
d413626f
GA
9132022-05-06 Jonathan Wakely <jwakely@redhat.com>
914
915 Backported from master:
916 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
917
918 PR libstdc++/105502
919 * include/bits/random.tcc
920 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
921 Update state when __state_avail is false.
922 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
923 Check that deserialized object equals serialized one.
924
9252022-05-06 Patrick Palka <ppalka@redhat.com>
926
927 Backported from master:
928 2022-05-02 Patrick Palka <ppalka@redhat.com>
929
930 PR libstdc++/103911
931 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
932 two delimeters for the exponent part in the form of a possibly
933 NULL string of length two. Don't use std::tolower.
934 (pattern): Adjust calls to find_end_of_float accordingly.
935
9362022-05-06 Alexandre Oliva <oliva@adacore.com>
937
938 Backported from master:
939 2022-05-03 Alexandre Oliva <oliva@adacore.com>
940
941 PR c++/105324
942 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
943 with conditional for floating-point overloads of from_char.
944
1ea978e3
JJ
9452022-05-06 Release Manager
946
947 * GCC 12.1.0 released.
948
3d02d0a0
GA
9492022-05-02 Patrick Palka <ppalka@redhat.com>
950
951 Backported from master:
952 2022-05-02 Patrick Palka <ppalka@redhat.com>
953
954 PR libstdc++/105441
955 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
956 Also accept 'P' as the start of the exponent.
957 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
958
0faf3a1e
GA
9592022-04-29 Jonathan Wakely <jwakely@redhat.com>
960
961 Backported from master:
962 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
963
964 PR libstdc++/105417
965 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
966 Regenerate.
967 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
968 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
969 symbols as aliases for corresponding symbols without abi-tag.
970
9712022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
972
973 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
974 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
975 Likewise.
976 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
977 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
978 Likewise.
979
ab73f5b0
GA
9802022-04-28 Jonathan Wakely <jwakely@redhat.com>
981
982 * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
983 mainline.
984 * doc/xml/manual/status_cxx2011.xml: Likewise.
985 * doc/xml/manual/status_cxx2014.xml: Likewise.
986 * doc/xml/manual/status_cxx2017.xml: Likewise.
987 * doc/xml/manual/status_cxx2020.xml: Likewise.
988 * doc/xml/manual/status_cxxtr1.xml: Likewise.
989 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
990 * doc/html/manual/status.html: Regenerate.
991
9922022-04-28 Jonathan Wakely <jwakely@redhat.com>
993
994 PR libstdc++/99290
995 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
996 directory_iterator constructor, and check on each iteration.
997 * src/filesystem/ops.cc (fs::copy): Likewise.
998 * testsuite/27_io/filesystem/operations/copy.cc: Check for
999 errors during recursion.
1000 * testsuite/experimental/filesystem/operations/copy.cc:
1001 Likewise.
1002
10032022-04-28 François Dumont <fdumont@gcc.gnu.org>
1004
1005 * config/abi/pre/gnu-versioned-namespace.ver: Remove
1006 std::random_device::* pattern.
1007
ba949a6a
GA
10082022-04-27 Jakub Jelinek <jakub@redhat.com>
1009
1010 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1011 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1012 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1013 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1014 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1015 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1016 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1017 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1018
10192022-04-27 Jonathan Wakely <jwakely@redhat.com>
1020
1021 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1022 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1023 (StdAtomicPrinter): New printer.
1024 (build_libstdcxx_dictionary): Register new printer.
1025 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1026 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1027 pointers.
1028
01ad093b
GA
10292022-04-26 Jonathan Wakely <jwakely@redhat.com>
1030
1031 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1032 constructor for constant initialization from nullptr_t.
1033 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1034 Check for new constructor.
1035
10362022-04-26 Jonathan Wakely <jwakely@redhat.com>
1037
1038 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1039 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1040 Check std::hash specialization.
1041
98de0da6
GA
10422022-04-25 Jonathan Wakely <jwakely@redhat.com>
1043
1044 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1045 conditionally.
1046 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1047 Define for C++23.
1048 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1049 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1050 functions.
1051 * include/std/version (__cpp_lib_constexpr_memory): Define new
1052 value for C++23.
1053 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1054 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1055 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1056 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1057 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1058 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1059 New test.
1060
10612022-04-25 Jonathan Wakely <jwakely@redhat.com>
1062
1063 PR libstdc++/105375
1064 * include/std/future (packaged_task): Add deduction guides.
1065 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1066
10672022-04-25 Philipp Fent <fent@in.tum.de>
1068
1069 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1070 Rename as iterator.
1071 (StdInitializerListPrinter): Define new printer.
1072 (build_libstdcxx_dictionary): Register new printer.
1073 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1074 initializer_list.
1075
ab54f600
GA
10762022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1077
1078 PR libstdc++/102994
1079 * include/bits/atomic_base.h (atomic_flag::notify_one,
1080 notify_all): Remove const qualification.
1081 (__atomic_base::notify_one, notify_all): Likewise.
1082 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1083 Likewise.
1084 (atomic::notify_one, notify_all): Likewise.
1085 (atomic<T*>::notify_one, notify_all): Likewise.
1086 (atomic_notify_one, atomic_notify_all): Likewise.
1087 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1088 to account for change in notify_one/notify_all signature.
1089
c1a9cf67
GA
10902022-04-21 Patrick Palka <ppalka@redhat.com>
1091
1092 * include/std/charconv (__from_chars_alnum_to_val_table):
1093 Simplify initialization of __lower/__upper_letters.
1094 (__from_chars_alnum_to_val): Default the template parameter to
1095 false.
1096 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1097 assume the uppercase and lowercase letters are contiguous.
1098 (__floating_from_chars_hex): Likewise.
1099
11002022-04-21 Patrick Palka <ppalka@redhat.com>
1101
1102 PR c++/105297
1103 PR c++/105322
1104 * include/std/charconv (__from_chars_alnum_to_val): Make
1105 initializer for __table dependent in an artificial way.
1106
11072022-04-21 Jonathan Wakely <jwakely@redhat.com>
1108
1109 PR libstdc++/105324
1110 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1111 Remove assertion.
1112 * testsuite/20_util/from_chars/pr105324.cc: New test.
1113
29a25a60
GA
11142022-04-20 Jonathan Wakely <jwakely@redhat.com>
1115
1116 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1117 Check correct feature test macro.
1118
11192022-04-20 Jonathan Wakely <jwakely@redhat.com>
1120
1121 PR libstdc++/93602
1122 * doc/xml/manual/prerequisites.xml: Document libiconv
1123 workarounds.
1124 * doc/html/manual/setup.html: Regenerate.
1125 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1126 * src/Makefile.in: Regenerate.
1127
d1d57187
GA
11282022-04-19 Patrick Palka <ppalka@redhat.com>
1129
1130 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1131 define.
1132 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1133 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1134 warnings.
1135 (__floating_to_chars_precision): Likewise.
1136
11372022-04-19 Philipp Fent <fent@in.tum.de>
1138
1139 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1140 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1141
11422022-04-19 Jonathan Wakely <jwakely@redhat.com>
1143
1144 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1145 * configure: Regenerate.
1146
3f7c81ef
GA
11472022-04-18 Patrick Palka <ppalka@redhat.com>
1148
1149 * include/std/charconv (__from_chars_pow2_base): Manually
1150 unroll the first iteration of the main loop and simplify
1151 accordingly.
1152
587953f0
GA
11532022-04-15 Patrick Palka <ppalka@redhat.com>
1154
1155 PR libstdc++/104858
1156 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1157 __first twice at the start.
1158 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1159
11602022-04-15 Patrick Palka <ppalka@redhat.com>
1161
1162 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1163 (__from_chars_alnum_to_val): Define.
1164 (__from_chars_binary): Rename to ...
1165 (__from_chars_pow2_base): ... this. Generalize to handle any
1166 power-of-two base using __from_chars_alnum_to_val.
1167 (__from_chars_digit): Optimize digit recognition to a single
1168 test instead of two tests. Use [[__unlikely___]] attribute.
1169 (__from_chars_alpha_to_num): Remove.
1170 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1171 nested loop for the overflow case. Maintain a lower bound
1172 on the number of available bits in the result and use it to
1173 omit the overflow check.
1174 (from_chars): Adjust appropriately.
1175 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1176 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1177 to recognize a hex digit instead.
1178
031bd52e
GA
11792022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1180
1181 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1182 for RISC-V.
1183 * configure: Regenerate.
1184
11852022-04-14 Jonathan Wakely <jwakely@redhat.com>
1186
1187 * doc/xml/manual/intro.xml: Fix comment.
1188
11892022-04-14 Jonathan Wakely <jwakely@redhat.com>
1190
1191 * include/precompiled/stdc++.h: Include <stacktrace> and
1192 <stdatomic.h> for C++23.
1193
11942022-04-14 Jonathan Wakely <jwakely@redhat.com>
1195
1196 PR libstdc++/105269
1197 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1198 Define.
1199 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1200 Define.
1201 * include/std/optional (__cpp_lib_optional): Define new value
1202 for C++23.
1203 (__cpp_lib_monadic_optional): Remove.
1204 * include/std/version (__cpp_lib_constexpr_vector): Define.
1205 (__cpp_lib_stdatomic_h): Define.
1206 (__cpp_lib_optional): Define new value for C++23.
1207 (__cpp_lib_monadic_optional): Remove.
1208 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1209 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1210 * testsuite/20_util/optional/version.cc: Likewise.
1211 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1212 feature test macro.
1213 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1214 Likewise.
1215 * testsuite/20_util/optional/monadic/version.cc: Removed.
1216 * testsuite/23_containers/vector/requirements/version.cc: New test.
1217 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1218
504dae1d
GA
12192022-04-12 Jonathan Wakely <jwakely@redhat.com>
1220
1221 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1222 * config.h.in: Regenerate.
1223 * configure: Regenerate.
1224
12252022-04-12 Jonathan Wakely <jwakely@redhat.com>
1226
1227 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1228 a smaller container if the unused capacity is larger than the
1229 used size.
1230
12312022-04-12 Jonathan Wakely <jwakely@redhat.com>
1232
1233 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1234 or _Impl::_M_assign to initialize elements in allocated storage.
1235 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1236 _Impl::_M_destroy.
1237 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1238 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1239 function.
1240 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1241 new element using allocator.
1242 (basic_stacktrace::_Impl::_M_clone): New function.
1243 (basic_stacktrace::_Impl::_M_xclone): New function.
1244 (basic_stacktrace::_Impl::_M_assign): New function.
1245
12462022-04-12 Jonathan Wakely <jwakely@redhat.com>
1247
1248 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1249 Use nothrow new instead of try block for std::allocator.
1250 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1251 std::allocator.
1252
12532022-04-12 Jonathan Wakely <jwakely@redhat.com>
1254
1255 * include/std/stacktrace (basic_stacktrace::current): Replace
1256 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1257 Check return value of backtrace_simple when max depth given.
1258 (basic_stacktrace::_M_reserve): Remove.
1259 (basic_stacktrace::_S_curr_cb): Remove.
1260 (basic_stacktrace::_M_prepare(size_type)): New function to
1261 reserve initial capacity and return callback.
1262 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1263 and remove redundant zeroing of _M_frames and _M_capacity.
1264 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1265 attribute. Assign _Impl instead of swapping.
1266 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1267
da066c42
GA
12682022-04-11 Jonathan Wakely <jwakely@redhat.com>
1269
1270 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1271 Change [[unlikely]] attribute to [[likely]].
1272
12732022-04-11 Jonathan Wakely <jwakely@redhat.com>
1274
1275 PR libstdc++/105031
1276 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1277 Fix allocator usage in constructors.
1278 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1279 try to reallocate using const allocator.
1280 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1281 if-constexpr with non-constant condition. Do not allocate new
1282 storage if allocator propagates. Do not set _M_size if
1283 allocation fails.
1284 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1285 assertion that non-propagating allocators are equal.
1286 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1287
12882022-04-11 Jonathan Wakely <jwakely@redhat.com>
1289
1290 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1291 implementation into each overload. Add noinline attribute and
1292 skip current frame.
1293 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1294 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1295 (basic_stacktrace::_Impl::_S_max_size): New function defining
1296 maximum size in terms of allocator and size_type.
1297 (basic_stacktrace::_Impl::_M_allocate): Check against
1298 max_size().
1299 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1300 for non-constexpr checks. Check line number is correct.
1301
13022022-04-11 Jonathan Wakely <jwakely@redhat.com>
1303
1304 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1305 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1306 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1307 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1308 * testsuite/20_util/stacktrace/version.cc: Moved to...
1309 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1310
13112022-04-11 Jonathan Wakely <jwakely@redhat.com>
1312
1313 * include/experimental/bits/fs_path.h (path): Define special
1314 members after path::_Cmpt is complete.
1315
405eda0d
GA
13162022-04-08 Jonathan Wakely <jwakely@redhat.com>
1317
1318 PR libstdc++/105153
1319 * include/std/expected
1320 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1321 * testsuite/20_util/expected/cons.cc: Check constructor.
1322
13232022-04-08 Jonathan Wakely <jwakely@redhat.com>
1324
1325 PR libstdc++/105154
1326 * include/std/expected (expected<void, E>::swap): Set
1327 _M_has_value to false for objects that previously had a value.
1328 * testsuite/20_util/expected/swap.cc: Fix test to check void
1329 specialization.
1330
13312022-04-08 Jonathan Wakely <jwakely@redhat.com>
1332
1333 PR libstdc++/105146
1334 * include/std/expected (bad_expected_access): Move constructor
1335 parameter.
1336 * testsuite/20_util/expected/bad.cc: New test.
1337
df00d103
GA
13382022-04-07 Hans-Peter Nilsson <hp@axis.com>
1339
1340 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1341 test.
1342
8af4270d
GA
13432022-04-02 Jakub Jelinek <jakub@redhat.com>
1344
1345 PR libstdc++/105128
1346 * include/std/source_location (std::source_location::__impl): Move
1347 definition before using __builtin_ret_type.
1348
13492022-04-01 Jonathan Wakely <jwakely@redhat.com>
1350
1351 * include/std/utility (unreachable): Define for C++23.
1352 * include/std/version (__cpp_lib_unreachable): Define.
1353 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1354 arguments. Handle only the function being given.
1355 * testsuite/20_util/unreachable/1.cc: New test.
1356 * testsuite/20_util/unreachable/version.cc: New test.
1357
13582022-04-01 Jonathan Wakely <jwakely@redhat.com>
1359
1360 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1361 incorrect noexcept from declaration.
1362 * include/experimental/bits/fs_path.h (path::begin, path::end):
1363 Add noexcept to declarations, to match definitions.
1364
13652022-04-01 Timm Bäder <tbaeder@redhat.com>
1366
1367 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1368 * include/experimental/bits/fs_ops.h: Likewise.
1369
57ad4462
GA
13702022-03-31 Jonathan Wakely <jwakely@redhat.com>
1371
1372 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1373
9f774626
GA
13742022-03-29 Jonathan Wakely <jwakely@redhat.com>
1375
1376 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1377 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1378 * testsuite/18_support/unexpected_handler.cc: Likewise.
1379
13802022-03-29 Jonathan Wakely <jwakely@redhat.com>
1381
1382 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1383 static data members for _Fp_fmt enumerators.
1384
13852022-03-29 Jonathan Wakely <jwakely@redhat.com>
1386
1387 * include/std/version (__cpp_lib_variant): Fix conditions to
1388 match <variant>.
1389 (__cpp_lib_expected): Fix condition to match <expected>.
1390
aab0127d
GA
13912022-03-28 Jonathan Wakely <jwakely@redhat.com>
1392
1393 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1394 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1395 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1396 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1397 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1398 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1399 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1400 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1401
2c1c55d7
GA
14022022-03-27 Jonathan Wakely <jwakely@redhat.com>
1403
1404 * doc/doxygen/user.cfg.in: Add new header.
1405 * include/Makefile.am: Likewise.
1406 * include/Makefile.in: Regenerate.
1407 * include/precompiled/stdc++.h: Add new header.
1408 * include/std/version (__cpp_lib_expected): Define.
1409 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1410 (unexpected_handler, set_unexpected): Do not declare for C++23.
1411 * include/std/expected: New file.
1412 * testsuite/20_util/expected/assign.cc: New test.
1413 * testsuite/20_util/expected/cons.cc: New test.
1414 * testsuite/20_util/expected/illformed_neg.cc: New test.
1415 * testsuite/20_util/expected/observers.cc: New test.
1416 * testsuite/20_util/expected/requirements.cc: New test.
1417 * testsuite/20_util/expected/swap.cc: New test.
1418 * testsuite/20_util/expected/synopsis.cc: New test.
1419 * testsuite/20_util/expected/unexpected.cc: New test.
1420 * testsuite/20_util/expected/version.cc: New test.
1421
31e989a2
GA
14222022-03-25 Jonathan Wakely <jwakely@redhat.com>
1423
1424 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1425 comments.
1426
d1ca63a1
GA
14272022-03-23 Jonathan Wakely <jwakely@redhat.com>
1428
1429 PR libstdc++/105027
1430 * include/std/bit (bit_cast): Add constraints.
1431 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1432
14332022-03-23 Jonathan Wakely <jwakely@redhat.com>
1434
1435 * include/std/version [!_GLIBCXX_HOSTED]
1436 (__cpp_lib_hardware_interference_size): Define for freestanding.
1437 (__cpp_lib_bit_cast): Likewise.
1438 (__cpp_lib_is_layout_compatible): Likewise.
1439 (__cpp_lib_is_pointer_interconvertible): Likewise.
1440 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1441 freestanding.
1442 (__cpp_lib_invoke_r): Likewise.
1443 (__cpp_lib_ios_noreplace): Likewise.
1444 (__cpp_lib_monadic_optional): Likewise.
1445 (__cpp_lib_move_only_function): Likewise.
1446 (__cpp_lib_spanstream): Likewise.
1447 (__cpp_lib_stacktrace): Likewise.
1448 (__cpp_lib_string_contains): Likewise.
1449 (__cpp_lib_string_resize_and_overwrite): Likewise.
1450 (__cpp_lib_to_underlying): Likewise.
1451
14522022-03-23 Jonathan Wakely <jwakely@redhat.com>
1453
1454 PR libstdc++/105021
1455 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1456 <bits/atomic_wait.h> for freestanding.
1457
a2287813
GA
14582022-03-22 Hans-Peter Nilsson <hp@axis.com>
1459
1460 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1461 Conditionalize call to fesetround.
1462
d156bb87
GA
14632022-03-21 Jakub Jelinek <jakub@redhat.com>
1464
1465 PR libstdc++/104990
1466 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1467 isn't overloaded if __clang__ is defined.
1468
8ca61ad1
GA
14692022-03-18 Jonathan Wakely <jwakely@redhat.com>
1470
1471 PR libstdc++/104242
1472 * include/std/any (any(T&&)): Revert change to constraints.
1473 * testsuite/20_util/any/cons/104242.cc: New test.
1474
14752022-03-18 Jonathan Wakely <jwakely@redhat.com>
1476
1477 PR libstdc++/92546
1478 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1479 <bits/stl_pair.h>.
1480 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1481 (__pstl::__internal::__except_handler): Use std::__terminate
1482 instead of std::terminate.
1483 * src/c++17/fs_path.cc: Include <array>.
1484 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1485 <functional>.
1486 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1487 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1488 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1489 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1490 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1491 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1492 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1493 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1494 <iterator>.
1495 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1496 <functional>.
1497 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1498 Likewise.
1499 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1500 Likewise.
1501 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1502 Likewise.
1503 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1504 Include <array>.
1505 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1506 <functional>.
1507 * testsuite/25_algorithms/max/constrained.cc: Likewise.
1508 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1509 * testsuite/25_algorithms/min/constrained.cc: Likewise.
1510 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1511 * testsuite/25_algorithms/minmax_element/constrained.cc:
1512 Likewise.
1513 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1514 * testsuite/25_algorithms/move/93872.cc: Likewise.
1515 * testsuite/25_algorithms/move_backward/93872.cc: Include
1516 <iterator>.
1517 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1518 <functional>.
1519 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1520 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1521 Likewise.
1522 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1523 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1524 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1525 * testsuite/25_algorithms/set_difference/constrained.cc:
1526 Likewise.
1527 * testsuite/25_algorithms/set_intersection/constexpr.cc:
1528 Likewise.
1529 * testsuite/25_algorithms/set_intersection/constrained.cc:
1530 Likewise.
1531 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1532 Likewise.
1533 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1534 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1535 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1536 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1537 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1538 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1539 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1540 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1541 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1542 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1543 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1544 * testsuite/std/ranges/adaptors/split.cc: Likewise.
1545
e9ea3016
GA
15462022-03-17 Jonathan Wakely <jwakely@redhat.com>
1547
1548 PR libstdc++/92546
1549 * include/bits/fs_path.h (path::make_preferred): Use
1550 handwritten loop instead of std::replace.
1551
15522022-03-17 Jonathan Wakely <jwakely@redhat.com>
1553
1554 PR middle-end/104966
1555 * include/bits/locale_facets_nonio.tcc
1556 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1557 make all string copies before any stores to *this.
1558
15592022-03-17 Jonathan Wakely <jwakely@redhat.com>
1560
1561 * testsuite/util/testsuite_character.h: Fix comment.
1562
9fc8f278
GA
15632022-03-16 Jonathan Wakely <jwakely@redhat.com>
1564
1565 PR libstdc++/103407
1566 * config/abi/pre/gnu.ver: Make version for std::from_chars
1567 depend on HAVE_USELOCALE macro.
1568 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1569 std::from_chars for floating-point types as undesignated if
1570 not found in the baseline symbols file.
1571
15722022-03-16 Jonathan Wakely <jwakely@redhat.com>
1573
1574 * include/std/charconv (__cpp_lib_to_chars): Only define when
1575 both from_chars and to_chars are supported for floating-point
1576 types.
1577 (from_chars, to_chars): Adjust preprocessor conditions guarding
1578 declarations.
1579 * include/std/version (__cpp_lib_to_chars): Adjust condition to
1580 match <charconv> definition.
1581 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1582 function template.
1583 (from_chars): Simplify preprocessor checks and use
1584 from_chars_strtod when appropriate.
1585
510613e7
GA
15862022-03-14 Jonathan Wakely <jwakely@redhat.com>
1587
1588 PR libstdc++/104875
1589 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1590 hold octets that will be left-shifted.
1591
5e28be89
GA
15922022-03-10 Jonathan Wakely <jwakely@redhat.com>
1593
1594 PR libstdc++/104870
1595 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1596 before using fast_float.
1597
15982022-03-10 Detlef Vollmann <dv@vollmann.ch>
1599
1600 PR libstdc++/104866
1601 * include/bits/this_thread_sleep.h: Fix order of #endif and
1602 closing brace of namespace.
1603
16042022-03-10 Jonathan Wakely <jwakely@redhat.com>
1605
1606 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1607 Handle NaN.
1608
16092022-03-10 Jonathan Wakely <jwakely@redhat.com>
1610
1611 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1612 <=> comparison.
1613
8cc4f9cd
GA
16142022-03-09 Patrick Palka <ppalka@redhat.com>
1615
1616 PR libstdc++/104859
1617 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1618 Be explicit when narrowing the shifted effective_mantissa,
1619 since it may have an integer-class type.
1620
8d038a84
GA
16212022-03-08 Jonathan Wakely <jwakely@redhat.com>
1622
1623 * include/bits/uses_allocator_args.h: Remove incorrect copyright
1624 notice.
1625
e6533e2e
GA
16262022-03-07 Jonathan Wakely <jwakely@redhat.com>
1627
1628 PR libstdc++/104807
1629 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1630 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1631 (__is_constant_evaluated): Add visibility pragma.
1632
16332022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1634
1635 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1636 include.
1637
762181c5
GA
16382022-03-05 Jonathan Wakely <jwakely@redhat.com>
1639
1640 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1641 attribute.
1642 (__terminate): Likewise.
1643
8d96e14c
GA
16442022-03-04 Jonathan Wakely <jwakely@redhat.com>
1645
1646 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1647 inside #if condition.
1648
fc03ebdc
GA
16492022-03-03 Jonathan Wakely <jwakely@redhat.com>
1650
1651 PR libstdc++/104748
1652 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1653 constexpr test.
1654
16552022-03-03 Jonathan Wakely <jwakely@redhat.com>
1656
1657 * testsuite/17_intro/names.cc (func): Undef on AIX.
1658
16592022-03-03 Jonathan Wakely <jwakely@redhat.com>
1660
1661 PR libstdc++/96526
1662 * libsupc++/compare (strong_order): Add missing support for
1663 floating-point types.
1664 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1665 New test.
1666
12d4552e
GA
16672022-03-01 Jonathan Wakely <jwakely@redhat.com>
1668
1669 PR middle-end/103984
1670 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1671 default member initializer.
1672
756a6185
GA
16732022-02-24 Jonathan Wakely <jwakely@redhat.com>
1674
1675 PR libstdc++/104602
1676 * include/std/source_location (source_location::current): Use
1677 deduced type of __builtin_source_location().
1678
2cfb33fc
GA
16792022-02-22 Patrick Palka <ppalka@redhat.com>
1680
1681 * include/bits/ranges_base.h (__detail::__is_initializer_list):
1682 Define.
1683 (viewable_range): Adjust as per P2415R2.
1684 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1685 * include/std/ranges (owning_view): Define as per P2415R2.
1686 (enable_borrowed_range<owning_view>): Likewise.
1687 (views::__detail::__can_subrange): Replace with ...
1688 (views::__detail::__can_owning_view): ... this.
1689 (views::_All::_S_noexcept): Sync with operator().
1690 (views::_All::operator()): Use owning_view instead of subrange
1691 as per P2415R2.
1692 * include/std/version (__cpp_lib_ranges): Adjust value.
1693 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1694 views::all uses owning_view instead of subrange.
1695 (test08): New test.
1696 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1697 now that rvalue non-view non-borrowed ranges are viewable.
1698 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1699
0bdb0498
GA
17002022-02-17 Jonathan Wakely <jwakely@redhat.com>
1701
1702 PR libstdc++/104559
1703 * doc/xml/manual/evolution.xml: Document deprecation.
1704 * doc/html/manual/api.html: Regenerate.
1705 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1706 Remove default argument.
1707 (insert(const_iterator)): New overload with deprecated attribute.
1708 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1709 New test.
1710
17112022-02-17 Jonathan Wakely <jwakely@redhat.com>
1712
1713 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1714 code that call cat->name() on std::error_category objects.
1715 Identify known categories by symbol name and use a hardcoded
1716 name. Print error code values as enumerators where appopriate.
1717 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1718 name of custom category. Check io_errc and future_errc errors.
1719
875e493b
GA
17202022-02-15 Jonathan Wakely <jwakely@redhat.com>
1721
1722 PR libstdc++/104542
1723 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1724 (uninitialized_construct_using_allocator): Add constexpr.
1725 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1726 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1727
1f8a09d2
GA
17282022-02-14 Jonathan Wakely <jwakely@redhat.com>
1729
1730 PR libstdc++/100912
1731 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1732 namespace for IEEE128 long double mode.
1733 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1734 version and export __gnu_cxx_ieee128::__convert_from_v.
1735 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1736 Make __ibm128 overload use snprintf directly
1737 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1738 Remove stable IEEE128/LDBL versions.
1739
17402022-02-14 Jonathan Wakely <jwakely@redhat.com>
1741
1742 PR libstdc++/103891
1743 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1744 Remove.
1745 * include/std/variant: Check feature test macros instead.
1746 * include/std/version: Likewise.
1747
17482022-02-14 Jonathan Wakely <jwakely@redhat.com>
1749
1750 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1751 Fix typo.
1752
17532022-02-14 Jonathan Wakely <jwakely@redhat.com>
1754
1755 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1756 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1757
e8d68f0a
GA
17582022-02-11 Jonathan Wakely <jwakely@redhat.com>
1759
1760 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1761 selector.
1762
17632022-02-11 Jonathan Wakely <jwakely@redhat.com>
1764
1765 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1766 Ignore -Walloc-larger-than warning.
1767 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1768 Likewise.
1769 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1770 to avoid linker error for __atomic_is_lock_free.
1771
a645583d
GA
17722022-02-10 Thomas Rodgers <rodgert@appliantology.com>
1773
1774 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1775 __waiter_base::_S_do_spin_v): Change memory order from relaxed
1776 to acquire.
1777
17782022-02-10 Jonathan Wakely <jwakely@redhat.com>
1779
1780 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1781 using-declaration.
1782 (atomic_fetch_xor_explicit): Likewise.
1783 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1784 arithmetic and logical operations for atomic_int.
1785
17862022-02-10 Jonathan Wakely <jwakely@redhat.com>
1787
1788 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1789 when <dirent.h> is not available.
1790 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
1791
3adf509f
GA
17922022-02-09 Thomas Rodgers <rodgert@appliantology.com>
1793
1794 PR libstdc++/104442
1795 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
1796 loop inside do loop so that threads failing the wait, reload
1797 _M_ver.
1798
2a2fda2d
GA
17992022-02-08 Jonathan Wakely <jwakely@redhat.com>
1800
1801 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
1802 parameter to _Dir_base&&.
1803 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1804 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1805 parameter to _Dir_base&&.
1806
18072022-02-08 Jonathan Wakely <jwakely@redhat.com>
1808
1809 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1810 checking for CAS on correct word size.
1811
18122022-02-08 Jonathan Wakely <jwakely@redhat.com>
1813
1814 * testsuite/experimental/filesystem/operations/create_directories.cc:
1815 Adjust expected results for Windows.
1816
18172022-02-08 Jonathan Wakely <jwakely@redhat.com>
1818
1819 PR libstdc++/104161
1820 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1821 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1822 instead of checking for errno values indicating a directory.
1823 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1824 logic to non-throwing overload.
1825 (fs::remove_all(const path&, error_code&)): Add comments.
1826 * src/filesystem/ops-common.h: Likewise.
1827
3c1cbde1
GA
18282022-02-04 Jonathan Wakely <jwakely@redhat.com>
1829
1830 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1831 type to use portable posix::DIR alias.
1832
18332022-02-04 Jonathan Wakely <jwakely@redhat.com>
1834
1835 * include/c_compatibility/stdatomic.h [__clang__]: Use
1836 #include_next <stdatomic.h>.
1837
18382022-02-04 Jonathan Wakely <jwakely@redhat.com>
1839
1840 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1841 noexcept.
1842 (fs::create_directories): Likewise.
1843 (fs::remove_all): Likewise.
1844 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1845 (fs::create_directories): Likewise.
1846 (fs::remove_all): Likewise.
1847
18482022-02-04 Jonathan Wakely <jwakely@redhat.com>
1849
1850 PR libstdc++/104161
1851 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1852 and unlinkat.
1853 * config.h.in: Regenerate.
1854 * configure: Regenerate.
1855 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1856 remove_all overloads as friends.
1857 (recursive_directory_iterator::__erase): Declare new member
1858 function.
1859 * include/bits/fs_fwd.h (remove, remove_all): Declare.
1860 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1861 constructor. Pass file descriptor argument to base constructor.
1862 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1863 (_Dir::unlink, _Dir::rmdir): Define new member functions.
1864 (directory_iterator): Pass filename_only argument to _Dir
1865 constructor.
1866 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1867 parameters to take a _Dir rvalue instead of creating one.
1868 (_Dir_stack::orig): Add data member for storing original path.
1869 (_Dir_stack::report_error): Define new member function.
1870 (__directory_iterator_nofollow): Move here from dir-common.h and
1871 fix value to be a power of two.
1872 (__directory_iterator_filename_only): Define new constant.
1873 (recursive_directory_iterator): Construct _Dir object and move
1874 into _M_dirs stack. Pass skip_permission_denied argument to first
1875 advance call.
1876 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1877 (recursive_directory_iterator::__erase): Define new member
1878 function.
1879 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1880 (fs::remove_all): Use new recursive_directory_iterator::__erase
1881 member function.
1882 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1883 constructor and use openat to implement nofollow semantics.
1884 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1885 Define new member functions.
1886 (__directory_iterator_nofollow): Move to fs_dir.cc.
1887 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1888 base constructor.
1889 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1890 functions.
1891 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1892 parameters to take a _Dir rvalue instead of creating one.
1893 (recursive_directory_iterator): Check for new nofollow option.
1894 Construct _Dir object and move into _M_dirs stack. Pass
1895 skip_permission_denied argument to first advance call.
1896 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1897 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1898
18992022-02-04 Jonathan Wakely <jwakely@redhat.com>
1900
1901 * include/bits/allocator.h: Qualify std::allocator_traits in
1902 deprecated warnings.
1903 * libsupc++/exception (uncaught_exception): Add suggestion to
1904 deprecated warning.
1905
88944e13
GA
19062022-02-02 Jonathan Wakely <jwakely@redhat.com>
1907
1908 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1909 Add [[maybe_unused]] attribute.
1910 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1911 Likewise.
1912
19132022-02-02 Jonathan Wakely <jwakely@redhat.com>
1914
1915 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1916 custom comparison function for multiset.
1917 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1918 comparison function for set.
1919
19202022-02-02 Jonathan Wakely <jwakely@redhat.com>
1921
1922 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1923 Change member function to data member of function pointer type.
1924
19252022-02-02 Martin Sebor <msebor@redhat.com>
1926
1927 PR libstdc++/101831
1928 * include/std/array (begin): Declare const member function attribute
1929 const.
1930 (end, rbegin, rend, size, max_size, empty, data): Same.
1931 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
1932 * testsuite/23_containers/array/capacity/max_size.cc: Same.
1933 * testsuite/23_containers/array/capacity/size.cc: Same.
1934 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
1935
ae7e4af9
GA
19362022-02-02 Jonathan Wakely <jwakely@redhat.com>
1937
1938 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1939 autoconf macro to check whether d_type is present.
1940 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1941 Likewise.
1942
19432022-02-01 Jonathan Wakely <jwakely@redhat.com>
1944
1945 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
1946 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1947 Check follow_directory_symlink option.
1948 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1949 Likewise.
1950
19512022-02-01 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
1954 Reset state to past-the-end iterator on error.
1955 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
1956 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
1957 it might get reset.
1958 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
1959 for the TS implementation.
1960 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
1961 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
1962
19632022-02-01 Jonathan Wakely <jwakely@redhat.com>
1964
1965 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
1966
19672022-02-01 Jonathan Wakely <jwakely@redhat.com>
1968
1969 PR libstdc++/104301
1970 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
1971 for stdio_pure and stdio_posix options.
1972 * configure: Regenerate.
1973
19742022-02-01 Thomas Rodgers <rodgert@appliantology.com>
1975
1976 * include/bits/atomic_wait.h: Change memory order from
1977 Acquire/Release with relaxed loads to SeqCst+Release for
1978 accesses to the waiter's count.
1979
1bb52662
GA
19802022-01-31 Martin Liska <mliska@suse.cz>
1981
1982 * acinclude.m4: Detect *_ld_is_mold and use it.
1983 * configure: Regenerate.
1984
c67ffc25
GA
19852022-01-30 Hans-Peter Nilsson <hp@axis.com>
1986
1987 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
1988 simulator targets.
1989 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
1990
99f17e99
GA
19912022-01-27 Jonathan Wakely <jwakely@redhat.com>
1992
1993 PR libstdc++/100516
1994 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
1995 Add __builtin_unreachable to loop.
1996 * testsuite/23_containers/deque/100516.cc: New test.
1997
19982022-01-27 Jonathan Wakely <jwakely@redhat.com>
1999
2000 * include/bits/ranges_base.h (ranges::advance): Avoid signed
2001 overflow. Do nothing if already equal to desired result.
2002 * testsuite/24_iterators/range_operations/advance_overflow.cc:
2003 New test.
2004
20052022-01-27 Martin Liska <mliska@suse.cz>
2006
2007 PR libstdc++/104259
2008 * acinclude.m4: Fix typo.
2009 * configure: Regenerate.
2010
e0b8716f
GA
20112022-01-25 Jonathan Wakely <jwakely@redhat.com>
2012
2013 PR libstdc++/104019
2014 * include/bits/istream.tcc (basic_istream::sentry): Add braces
2015 around try-block.
2016 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2017 Add pragmas to disable bogus warnings from PR 61596.
2018
20192022-01-25 Jonathan Wakely <jwakely@redhat.com>
2020
2021 PR libstdc++/104217
2022 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2023 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
2024 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
2025
20262022-01-25 Jonathan Wakely <jwakely@redhat.com>
2027
2028 PR libstdc++/104161
2029 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2030 fdopendir.
2031 * config.h.in: Regenerate.
2032 * configure: Regenerate.
2033 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2034 and pass it to base class constructor.
2035 (directory_iterator): Pass nofollow flag to _Dir constructor.
2036 (fs::recursive_directory_iterator::increment): Likewise.
2037 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2038 directory_iterator constructor. Move error check outside loop.
2039 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2040 constructor and when it's set use ::open with O_NOFOLLOW and
2041 O_DIRECTORY.
2042 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2043 and pass it to base class constructor.
2044 (directory_iterator): Pass nofollow flag to _Dir constructor.
2045 (fs::recursive_directory_iterator::increment): Likewise.
2046 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2047 directory_iterator constructor. Move error check outside loop.
2048
0c940703
GA
20492022-01-23 Jonathan Wakely <jwakely@redhat.com>
2050
2051 PR libstdc++/104032
2052 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2053 mem-initializer for _M_buf.
2054 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2055 member access.
2056 * testsuite/27_io/spanstream/2.cc: New test.
2057
20582022-01-23 Jonathan Wakely <jwakely@redhat.com>
2059
2060 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2061 Define macro for case where std::from_chars is implemented in
2062 terms of strtod, strtof or strtold.
2063 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2064 (from_chars_impl, make_result, reserve_string): Do not define
2065 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2066 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2067 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2068 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2069 is binary64.
2070
20712022-01-23 Jonathan Wakely <jwakely@redhat.com>
2072
2073 PR libstdc++/104174
2074 * include/bits/hashtable_policy.h (_Map_base): Add partial
2075 specialization for maps with const key types.
2076 * testsuite/23_containers/unordered_map/104174.cc: New test.
2077
20782022-01-23 Jonathan Wakely <jwakely@redhat.com>
2079
2080 PR libstdc++/104019
2081 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2082 Set members to zero without type punning.
2083
9dd44357
GA
20842022-01-21 Jonathan Wakely <jwakely@redhat.com>
2085
2086 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2087
20882022-01-21 Jonathan Wakely <jwakely@redhat.com>
2089
2090 PR libstdc++/87193
2091 PR libstdc++/104019
2092 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2093 Define as type long.
2094 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2095 Likewise.
2096 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2097 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2098 (__cpp_lib_chrono_udls): Likewise.
2099 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2100 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2101 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2102 Likewise.
2103 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2104 Likewise.
2105 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2106 (__cpp_lib_sample): Likewise.
2107 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2108 Likewise.
2109 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2110 Likewise.
2111 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2112 Likewise.
2113 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2114 Likewise.
2115 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2116 Likewise.
2117 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2118 Likewise.
2119 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2120 Likewise.
2121 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2122 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2123 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2124 Likewise.
2125 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2126 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2127 * include/std/functional (__cpp_lib_not_fn): Likewise.
2128 (__cpp_lib_boyer_moore_searcher): Likewise.
2129 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2130 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2131 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2132 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2133 * include/std/tuple (__cpp_lib_apply): Likewise.
2134 (__cpp_lib_make_from_tuple): Likewise.
2135 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2136 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2137 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2138 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2139 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2140 (__cpp_lib_has_unique_object_representations)
2141 (__cpp_lib_is_aggregate): Likewise.
2142 * include/std/version: Likewise.
2143 * libsupc++/new (__cpp_lib_launder): Likewise.
2144
21452022-01-21 Jonathan Wakely <jwakely@redhat.com>
2146
2147 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2148 condition for C++17 definition.
2149
21502022-01-21 Jonathan Wakely <jwakely@redhat.com>
2151
2152 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2153 Add constexpr.
2154 (_Sp_atomic::_M_ptr): Add default member-initializer.
2155 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2156 Check constant initialization.
2157 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2158
5fa55d55
GA
21592022-01-20 Jonathan Wakely <jwakely@redhat.com>
2160
2161 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2162 equivalent attribute for Clang.
2163 * src/c++11/future.cc (__constinit): Likewise.
2164 * src/c++11/system_error.cc (__constinit): Likewise.
2165 * src/c++17/memory_resource.cc (__constinit): Likewise.
2166
21672022-01-20 Jonathan Wakely <jwakely@redhat.com>
2168
2169 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2170 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2171
fe1ad141
GA
21722022-01-19 Jonathan Wakely <jwakely@redhat.com>
2173
2174 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2175 from default flags.
2176 * configure: Regenerate.
2177
21782022-01-19 Jonathan Wakely <jwakely@redhat.com>
2179
2180 PR libstdc++/104123
2181 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2182 <stddef.h>.
2183
21842022-01-19 Jonathan Wakely <jwakely@redhat.com>
2185
2186 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2187 linker search paths.
2188 * src/Makefile.am: Fix src/debug/libbacktrace build.
2189 * src/Makefile.in: Regenerate.
2190 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2191 variable. Use symlinks for the source files.
2192 * src/libbacktrace/Makefile.in: Regenerate.
2193
21942022-01-19 Matthias Kretz <m.kretz@gsi.de>
2195
2196 * include/experimental/bits/simd.h (__floating_point_flags): Do
2197 not rely on math_errhandling to expand to a constant expression.
2198
21992022-01-19 Jonathan Wakely <jwakely@redhat.com>
2200
2201 * doc/xml/manual/evolution.xml: Document deprecations.
2202 * doc/xml/manual/status_cxx2017.xml: Update status.
2203 * doc/html/*: Regenerate.
2204
22052022-01-19 Jonathan Wakely <jwakely@redhat.com>
2206
2207 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2208 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2209
22102022-01-19 Jonathan Wakely <jwakely@redhat.com>
2211
2212 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2213 function.
2214
22152022-01-19 Jonathan Wakely <jwakely@redhat.com>
2216
2217 PR libstdc++/104101
2218 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2219 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2220
7a761ae6
GA
22212022-01-18 Jonathan Wakely <jwakely@redhat.com>
2222
2223 PR libstdc++/104099
2224 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2225 define for C++23.
2226 (operator=(nullptr_t)): Likewise.
2227 * include/bits/cow_string.h: Likewise.
2228 * include/std/string_view (basic_string_view(nullptr_t)):
2229 Likewise.
2230 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2231 expected error. Add examples that become ill-formed in C++23.
2232 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2233 Adjust expected errors.
2234 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2235 Likewise.
2236
22372022-01-18 Jonathan Wakely <jwakely@redhat.com>
2238
2239 PR libstdc++/104098
2240 * include/bits/stl_iterator.h (reverse_iterator): Check
2241 __cpp_lib_concepts instead of __cplusplus.
2242
22432022-01-18 Jonathan Wakely <jwakely@redhat.com>
2244
2245 PR libstdc++/101124
2246 * include/bits/stl_pair.h (pair): Adjust constraints on
2247 deprecated constructors accepting literal zero as null pointer
2248 constant. Improve wording of deprecated attribute.
2249 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2250 constructors do not cause ambiguities for copyable types.
2251
22522022-01-18 Jonathan Wakely <jwakely@redhat.com>
2253
2254 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2255 non-deprecated alternative.
2256
22572022-01-18 Tom Honermann <tom@honermann.net>
2258
2259 * acinclude.m4: Define config macros if uchar.h provides
2260 c8rtomb() and mbrtoc8().
2261 * config.h.in: Regenerate.
2262 * configure: Regenerate.
2263 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2264 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2265 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2266 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2267 New test.
2268 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2269 New test.
2270
22712022-01-18 Jonathan Wakely <jwakely@redhat.com>
2272
2273 * include/Makefile.am: Install new header.
2274 * include/Makefile.in: Regenerate.
2275 * include/c_compatibility/stdatomic.h: New file.
2276 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2277
22782022-01-18 Jonathan Wakely <jwakely@redhat.com>
2279
2280 PR libstdc++/104080
2281 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2282 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2283 Define in terms of __BYTE_ORDER__.
2284
22852022-01-18 Jonathan Wakely <jwakely@redhat.com>
2286
2287 PR libstdc++/104080
2288 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2289 * src/c++17/fast_float/fast_float.h (round): Use explicit
2290 template argument list for std::min.
2291
22922022-01-18 Jonathan Wakely <jwakely@redhat.com>
2293
2294 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2295 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2296 upcoming release.
2297 * doc/html/manual/status.html: Regenerate.
2298
22992022-01-18 Jonathan Wakely <jwakely@redhat.com>
2300
2301 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2302 comments.
2303 * configure: Regenerate.
2304
fc829782
GA
23052022-01-17 Patrick Palka <ppalka@redhat.com>
2306
2307 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2308 Conditionally define, and use it to conditionally include
2309 fast_float.
2310 (from_chars): Use fast_float for float and double when
2311 USE_LIB_FAST_FLOAT.
2312
23132022-01-17 Patrick Palka <ppalka@redhat.com>
2314
2315 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2316 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2317 case of over/underflow, return errc::result_out_of_range and don't
2318 modify 'value'.
2319
23202022-01-17 Patrick Palka <ppalka@redhat.com>
2321
2322 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2323 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2324
23252022-01-17 Patrick Palka <ppalka@redhat.com>
2326
2327 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2328 * src/c++17/fast_float/MERGE: New file.
2329 * src/c++17/fast_float/README.md: New file, copied from the
2330 fast_float repository.
2331 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2332 of the fast_float library.
2333
23342022-01-17 Patrick Palka <ppalka@redhat.com>
2335
2336 * src/c++17/floating_from_chars.cc: Include <bit>.
2337 (ascii_to_hexit, starts_with_ci): Conditionally define.
2338 (__floating_from_chars_hex): Conditionally define.
2339 (from_chars): Use __floating_from_chars_hex for
2340 chars_format::hex parsing of binary32/64 float/double.
2341 (testsuite/20_util/from_chars/7.cc): New test.
2342 * testsuite/20_util/from_chars/7.cc: New file.
2343
23442022-01-17 Jonathan Wakely <jwakely@redhat.com>
2345
2346 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2347 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2348 * include/Makefile.am: Add new header.
2349 * include/Makefile.in: Regenerate.
2350 * include/std/stacktrace: New header.
2351 * include/std/version (__cpp_lib_stacktrace): Define.
2352 * Makefile.in: Regenerate.
2353 * config.h.in: Regenerate.
2354 * configure: Regenerate.
2355 * doc/Makefile.in: Regenerate.
2356 * libsupc++/Makefile.in: Regenerate.
2357 * po/Makefile.in: Regenerate.
2358 * python/Makefile.in: Regenerate.
2359 * src/Makefile.am: Regenerate.
2360 * src/Makefile.in: Regenerate.
2361 * src/c++11/Makefile.in: Regenerate.
2362 * src/c++17/Makefile.in: Regenerate.
2363 * src/c++20/Makefile.in: Regenerate.
2364 * src/c++98/Makefile.in: Regenerate.
2365 * src/filesystem/Makefile.in: Regenerate.
2366 * testsuite/Makefile.in: Regenerate.
2367 * src/libbacktrace/Makefile.am: New file.
2368 * src/libbacktrace/Makefile.in: New file.
2369 * src/libbacktrace/backtrace-rename.h: New file.
2370 * src/libbacktrace/backtrace-supported.h.in: New file.
2371 * src/libbacktrace/config.h.in: New file.
2372 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2373 New proc.
2374 * testsuite/20_util/stacktrace/entry.cc: New test.
2375 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2376 * testsuite/20_util/stacktrace/version.cc: New test.
2377
23782022-01-17 Jonathan Wakely <jwakely@redhat.com>
2379
2380 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2381 names.
2382 * doc/html/manual/status.html: Regenerate.
2383
23842022-01-17 Jonathan Wakely <jwakely@redhat.com>
2385
2386 PR libstdc++/103650
2387 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2388 * include/Makefile.in: Regenerate.
2389 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2390
23912022-01-17 Matthias Kretz <m.kretz@gsi.de>
2392
2393 * include/experimental/bits/simd.h (__floating_point_flags): Do
2394 not rely on the presence of the math_errhandling macro.
2395
23962022-01-17 Jonathan Wakely <jwakely@redhat.com>
2397
2398 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2399 to qualified-id for dependent type.
2400
1e942d7c
GA
24012022-01-17 Jonathan Wakely <jwakely@redhat.com>
2402
2403 * doc/xml/manual/status_cxx2020.xml: Update.
2404 * doc/html/manual/status.html: Regenerate.
2405
24062022-01-17 Jonathan Wakely <jwakely@redhat.com>
2407 Thomas Rodgers <trodgers@redhat.com>
2408
2409 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2410 New macro.
2411 (_Sp_atomic): New class template.
2412 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2413 specializations.
2414 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2415 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2416 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2417 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2418 test.
2419 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2420
9248ee41
GA
24212022-01-15 Matthias Kretz <m.kretz@gsi.de>
2422
2423 * include/experimental/bits/simd.h: Move feature detection bools
2424 and add __have_avx512bitalg, __have_avx512vbmi2,
2425 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2426 __have_avx512vnni, __have_avx512vpopcntdq.
2427 (__detail::__machine_flags): New function which returns a unique
2428 uint64 depending on relevant -m and -f flags.
2429 (__detail::__odr_helper): New type alias for either an anonymous
2430 type or a type specialized with the __machine_flags number.
2431 (_SimdIntOperators): Change template parameters from _Impl to
2432 _Tp, _Abi because _Impl now has an __odr_helper parameter which
2433 may be _OdrEnforcer from the anonymous namespace, which makes
2434 for a bad base class.
2435 (many): Either add __odr_helper template parameter or mark as
2436 always_inline.
2437 * include/experimental/bits/simd_detail.h: Add defines for
2438 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2439 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2440 * include/experimental/bits/simd_builtin.h: Add __odr_helper
2441 template parameter or mark as always_inline.
2442 * include/experimental/bits/simd_fixed_size.h: Ditto.
2443 * include/experimental/bits/simd_math.h: Ditto.
2444 * include/experimental/bits/simd_scalar.h: Ditto.
2445 * include/experimental/bits/simd_neon.h: Add __odr_helper
2446 template parameter.
2447 * include/experimental/bits/simd_ppc.h: Ditto.
2448 * include/experimental/bits/simd_x86.h: Ditto.
2449
617db51d
GA
24502022-01-14 Uroš Bizjak <ubizjak@gmail.com>
2451
2452 * testsuite/22_locale/numpunct/members/char/3.cc:
2453 Require pt_PT locale instead of nl_NL.
2454 (test02): Use pt_PT locale instead of nl_NL.
2455
24562022-01-14 Jonathan Wakely <jwakely@redhat.com>
2457
2458 PR libstdc++/91260
2459 PR libstdc++/91383
2460 PR libstdc++/95065
2461 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2462 attribute.
2463 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2464 Disable deprecated warnings for base classes.
2465 (_Reference_wrapper_base): Likewise.
2466 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2467 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2468 * include/bits/stl_function.h (unary_function, binary_function):
2469 Add deprecated attribute.
2470 (unary_negate, not1, binary_negate, not2, ptr_fun)
2471 (pointer_to_unary_function, pointer_to_binary_function)
2472 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2473 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2474 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2475 attributes.
2476 * include/bits/stl_iterator.h: Disable deprecated warnings for
2477 std::iterator base classes.
2478 * include/bits/stl_iterator_base_types.h (iterator): Add
2479 deprecated attribute.
2480 * include/bits/stl_map.h (map::value_compare): Disable
2481 deprecated warnings for base class.
2482 * include/bits/stl_multimap.h (multimap::value_compare):
2483 Likewise.
2484 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2485 Add deprecated attribute.
2486 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2487 * include/bits/stream_iterator.h: Disable deprecated warnings.
2488 * include/bits/streambuf_iterator.h: Likewise.
2489 * include/ext/bitmap_allocator.h: Remove unary_function base
2490 classes.
2491 * include/ext/functional: Disable deprecated warnings.
2492 * include/ext/rope: Likewise.
2493 * include/ext/throw_allocator.h: Likewise.
2494 * include/std/type_traits (result_of): Add deprecated attribute.
2495 * include/tr1/functional: Disable deprecated warnings.
2496 * include/tr1/functional_hash.h: Likewise.
2497 * testsuite/20_util/function_objects/binders/1.cc: Add
2498 -Wno-disable-deprecations.
2499 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2500 * testsuite/20_util/function_objects/constexpr.cc: Add
2501 dg-warning.
2502 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2503 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2504 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2505 Likewise.
2506 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2507 Likewise.
2508 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2509 Likewise.
2510 * testsuite/20_util/reference_wrapper/24803.cc:
2511 Likewise.
2512 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2513 C++20 and check for absence of nested types.
2514 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2515 std::binary_function base class.
2516 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2517 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2518 std::iterator base class.
2519 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2520 Likewise.
2521 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2522 Likewise.
2523 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2524 Likewise.
2525 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2526 Likewise.
2527 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2528 Likewise.
2529 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2530 Likewise.
2531 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2532 Likewise.
2533 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2534 Likewise.
2535 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2536 Likewise.
2537 * testsuite/25_algorithms/copy/34595.cc:
2538 Likewise.
2539 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2540 base class.
2541 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2542 Disable deprecated warnings.
2543 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2544 Likewise.
2545 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2546 Likewise.
2547 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2548 Likewise.
2549 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2550 Likewise.
2551 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2552 Likewise.
2553 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2554 Likewise.
2555 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2556 Likewise.
2557 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2558 Likewise.
2559 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2560 Likewise.
2561 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2562 Likewise.
2563 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2564 Likewise.
2565 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2566 Likewise.
2567 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2568 Likewise.
2569 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2570 Likewise.
2571 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2572 Likewise.
2573 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2574 Likewise.
2575 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2576 Likewise.
2577 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2578 Likewise.
2579 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2580 Likewise.
2581 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2582 Likewise.
2583 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2584 Likewise.
2585 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2586 Likewise.
2587 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2588 Likewise.
2589 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2590 Likewise.
2591 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2592 Likewise.
2593 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2594 Likewise.
2595 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2596 Likewise.
2597 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2598 Likewise.
2599 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2600 Likewise.
2601 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2602 Likewise.
2603 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2604 Likewise.
2605 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2606 Likewise.
2607 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2608 Likewise.
2609 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2610 Likewise.
2611 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2612 Likewise.
2613 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2614 Likewise.
2615 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2616 Likewise.
2617 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2618 Likewise.
2619 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2620 Likewise.
2621 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2622 Likewise.
2623 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2624 Likewise.
2625 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2626 Likewise.
2627 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2628 Likewise.
2629 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2630 Likewise.
2631 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2632 Likewise.
2633 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2634 Likewise.
2635 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2636 Likewise.
2637 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2638 dg-warning.
2639 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2640 Likewise.
2641 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2642 Likewise.
2643 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2644 Disable deprecated warnings.
2645 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2646 Likewise.
2647 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2648 std::unary_function base classes.
2649 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2650 Remove std::iterator base classes.
2651
26522022-01-14 Jonathan Wakely <jwakely@redhat.com>
2653
2654 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2655 Correct type of macro value.
2656 (shared_ptr): Add additional friend declarations.
2657 (make_shared, allocate_shared): Constrain existing overloads and
2658 remove static_assert.
2659 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2660 New macro.
2661 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2662 specialization for use with make_shared_for_overwrite.
2663 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2664 (_Sp_counted_array_base): New class template.
2665 (_Sp_counted_array): New class template.
2666 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2667 New constructor for allocating shared arrays.
2668 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2669 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2670 type.
2671 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2672 (__cpp_lib_smart_ptr_for_overwrite): New macro.
2673 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2674 expected errors.
2675 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2676 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2677 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2678 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2679 feature test macro. Test non-trivial default-initialization.
2680
26812022-01-14 Jonathan Wakely <jwakely@redhat.com>
2682
2683 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2684 Also cast away cv-qualifiers when converting pointer to void.
2685 * testsuite/20_util/allocator/void.cc: Test construct function
2686 with cv-qualified types.
2687
26882022-01-14 Jonathan Wakely <jwakely@redhat.com>
2689
2690 PR libstdc++/103992
2691 * include/bits/stl_iterator.h (common_iterator): Use
2692 std::construct_at instead of placement new.
2693 * testsuite/24_iterators/common_iterator/1.cc: Check copy
2694 construction is usable in constant expressions.
2695
26962022-01-14 Jonathan Wakely <jwakely@redhat.com>
2697
2698 * doc/xml/manual/status_cxx2011.xml: Document new tokens
2699 accepted by std::random_device constructor.
2700 * doc/html/manual/status.html: Regenerate.
2701
02a8a01b
GA
27022022-01-12 Patrick Palka <ppalka@redhat.com>
2703
2704 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2705 directive.
2706
27072022-01-12 Patrick Palka <ppalka@redhat.com>
2708
2709 PR libstdc++/103955
2710 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2711 Track the excess precision separately from the effective
2712 precision. Avoid overflow in bounds check by splitting it into
2713 two checks.
2714 (__floating_to_chars_precision): Avoid overflow in bounds checks
2715 similarly.
2716 * testsuite/20_util/to_chars/103955.cc: New test.
2717
01a254e3
GA
27182022-01-11 Jonathan Wakely <jwakely@redhat.com>
2719
2720 PR libstdc++/103726
2721 * include/Makefile.am: Install <source_location> for
2722 freestanding.
2723 * include/Makefile.in: Regenerate.
2724 * include/std/version (__cpp_lib_source_location): Define for
2725 freestanding.
2726
27272022-01-11 Jonathan Wakely <jwakely@redhat.com>
2728
2729 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2730 Add neoxcept (LWG 3593).
2731
27322022-01-11 Jonathan Wakely <jwakely@redhat.com>
2733
2734 * include/std/ranges (ranges::__detail::__box): Add constexpr to
2735 assignment operators (LWG 3572).
2736 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2737 view that uses copyable-box.
2738
27392022-01-11 Jonathan Wakely <jwakely@redhat.com>
2740
2741 PR libstdc++/103726
2742 * include/Makefile.am: Install <coroutine> for freestanding.
2743 * include/Makefile.in: Regenerate.
2744 * include/std/coroutine: Adjust headers and preprocessor
2745 conditions.
2746 (__coroutine_traits_impl): Use concepts when available.
2747 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2748
27492022-01-11 Jonathan Wakely <jwakely@redhat.com>
2750
2751 * include/std/ostream (operator<<(basic_ostream&, charT)):
2752 Use unformatted input if no padding is needed.
2753 (operator<<(basic_ostream<char>&, char)): Likewise.
2754
27552022-01-11 Jonathan Wakely <jwakely@redhat.com>
2756
2757 PR libstdc++/103891
2758 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2759 Define.
2760 * include/std/variant (__cpp_lib_variant): Only define C++20
2761 value when the compiler is known to support conditionally
2762 trivial destructors.
2763 * include/std/version (__cpp_lib_variant): Likewise.
2764
27652022-01-11 Jonathan Wakely <jwakely@redhat.com>
2766
2767 * include/bits/stl_iterator.h (common_iterator): Add constexpr
2768 to all member functions (LWG 3574).
2769 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2770 tests as constant expressions.
2771 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2772
d9450aa0
GA
27732022-01-10 Jakub Jelinek <jakub@redhat.com>
2774
2775 PR libstdc++/77760
2776 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2777 (time_get::_M_extract_via_format): Declare new method with
2778 __time_get_state& as an extra argument.
2779 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2780 __state argument, set various fields in it while parsing. Handle %j,
2781 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2782 for %p immediately. Add a wrapper around the method without the
2783 __state argument for backwards compatibility.
2784 (_M_extract_num): Remove all __len == 4 special cases.
2785 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2786 initialize __state, pass it to _M_extract_via_format and finalize it
2787 at the end.
2788 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2789 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
2790 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
2791 version, don't call do_get but call _M_extract_via_format instead to
2792 pass around state.
2793 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
2794 with extra __time_get_state and __time_get_state::_M_finalize_state.
2795 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
2796 day_of_the_year): New functions in anon namespace.
2797 (mon_yday): New var in anon namespace.
2798 (__time_get_state::_M_finalize_state): Define.
2799 * testsuite/22_locale/time_get/get/char/4.cc: New test.
2800 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
2801 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
2802 as year 197AD instead of error.
2803 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2804 year 2001 instead of error.
2805 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2806 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2807 197 as year 197AD instead of error.
2808 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2809 1 as year 2001 instead of error.
2810 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2811
28122022-01-10 Jonathan Wakely <jwakely@redhat.com>
2813
2814 PR libstdc++/103866
2815 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2816 nothing for freestanding builds.
2817 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2818 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2819 with --without-headers. Do not use GCC_HEADER_STDINT for
2820 freestanding builds.
2821 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2822 for freestanding builds.
2823 * configure: Regenerate.
2824 * Makefile.in: Regenerate.
2825 * doc/Makefile.in: Regenerate.
2826 * include/Makefile.in: Regenerate.
2827 * libsupc++/Makefile.in: Regenerate.
2828 * po/Makefile.in: Regenerate.
2829 * python/Makefile.in: Regenerate.
2830 * src/Makefile.in: Regenerate.
2831 * src/c++11/Makefile.in: Regenerate.
2832 * src/c++17/Makefile.in: Regenerate.
2833 * src/c++20/Makefile.in: Regenerate.
2834 * src/c++98/Makefile.in: Regenerate.
2835 * src/filesystem/Makefile.in: Regenerate.
2836 * testsuite/Makefile.in: Regenerate.
2837
28382022-01-10 Jonathan Wakely <jwakely@redhat.com>
2839
2840 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2841 Add dg-timeout-factor directive.
2842 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2843 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2844 * testsuite/28_regex/match_results/102667.cc: Likewise.
2845
28462022-01-10 Jonathan Wakely <jwakely@redhat.com>
2847
2848 * doc/xml/manual/using.xml: Update documentation around default
2849 -std option.
2850 * doc/html/*: Regenerate.
2851
28522022-01-10 Jonathan Wakely <jwakely@redhat.com>
2853
2854 PR libstdc++/100017
2855 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2856 * src/c++17/Makefile.in: Regenerate.
2857
3a5702df
GA
28582022-01-09 Sandra Loosemore <sandra@codesourcery.com>
2859
2860 * testsuite/18_support/type_info/constexpr.cc: Add explicit
2861 -fdelete-null-pointer-checks option.
2862
11ce8d04
GA
28632022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
2864 Jonathan Wakely <jwakely@redhat.com>
2865
2866 PR libstdc++/103853
2867 * include/bits/forward_list.tcc (forward_list::merge): Check for
2868 self-merge.
2869 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2870
28712022-01-06 Jonathan Wakely <jwakely@redhat.com>
2872
2873 * include/bits/regex.h (basic_regex, match_results): Qualify
2874 name in friend declaration, to work around Clang bug.
2875
28762022-01-06 Jonathan Wakely <jwakely@redhat.com>
2877
2878 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2879
28802022-01-06 Jonathan Wakely <jwakely@redhat.com>
2881
2882 PR libstdc++/103911
2883 * include/std/charconv (__from_chars_alpha_to_num): Return
2884 char instead of unsigned char. Change invalid return value to
2885 127 instead of using numeric trait.
2886 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2887 Change type of variable to char.
2888
0fbefa25
GA
28892022-01-05 François Dumont <fdumont@gcc.gnu.org>
2890
2891 PR libstdc++/68303
2892 * include/bits/hashtable_policy.h
2893 (_Hashtable_hash_traits<_Hash>): New.
2894 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2895 (_Hashtable_base<>::_M_key_equals): New.
2896 (_Hashtable_base<>::_M_equals): Use latter.
2897 (_Hashtable_base<>::_M_key_equals_tr): New.
2898 (_Hashtable_base<>::_M_equals_tr): Use latter.
2899 * include/bits/hashtable.h
2900 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2901 (_Hashtable<>::find): Loop through elements to look for key if size is lower
2902 than __small_size_threshold().
2903 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2904 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2905 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2906 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2907 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2908 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2909 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2910 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2911 * testsuite/util/testsuite_performance.h
2912 (report_performance): Use 9 width to display memory.
2913 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2914 New performance test case.
2915
29162022-01-05 Jonathan Wakely <jwakely@redhat.com>
2917
2918 PR libstdc++/103919
2919 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2920 Relax constraints on string_view parameter.
2921 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
2922 Likewise.
2923 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
2924
29252022-01-05 Jonathan Wakely <jwakely@redhat.com>
2926
2927 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
2928 ARM EABI.
2929 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
2930 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
2931 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
2932 is emitted.
2933 (type_info::__equal): Define alias symbol.
2934 * libsupc++/typeinfo (type_info::before): Combine different
2935 implementations into one.
2936 (type_info::operator==): Likewise. Use address equality for
2937 constant evaluation. Call __equal for targets that require the
2938 definition to be non-inline.
2939 * testsuite/18_support/type_info/constexpr.cc: New test.
2940
29412022-01-05 Jonathan Wakely <jwakely@redhat.com>
2942
2943 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
2944 class and virtual functions as 'final'.
2945 (io_category_instance): Use constinit union to make the object
2946 immortal.
2947 * src/c++11/future.cc (future_error_category): Define class and
2948 virtual functions as 'final'.
2949 (future_category_instance): Use constinit union.
2950
29512022-01-05 Jonathan Wakely <jwakely@redhat.com>
2952
2953 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
2954 versioned namespace from the type name that is printed.
2955
29562022-01-05 Jonathan Wakely <jwakely@redhat.com>
2957
2958 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
2959 printer for std::regex NFA states.
2960
29612022-01-05 Jonathan Wakely <jwakely@redhat.com>
2962
2963 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
2964 placeholders in comments.
2965 * testsuite/23_containers/forward_list/operations/2.cc:
2966 Likewise.
2967 * testsuite/23_containers/forward_list/operations/3.cc:
2968 Likewise.
2969 * testsuite/23_containers/forward_list/operations/4.cc:
2970 Likewise.
2971 * testsuite/23_containers/forward_list/operations/5.cc:
2972 Likewise.
2973 * testsuite/23_containers/forward_list/operations/6.cc:
2974 Likewise.
2975 * testsuite/23_containers/forward_list/operations/7.cc:
2976 Likewise.
2977
29782022-01-05 Jonathan Wakely <jwakely@redhat.com>
2979
2980 PR libstdc++/103848
2981 * include/bits/stl_deque.h (operator-): Do not use 0 as null
2982 pointer constant.
2983
29842022-01-05 Jonathan Wakely <jwakely@redhat.com>
2985
2986 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
2987 Use std::_Construct for construct.
2988
29892022-01-05 Jonathan Wakely <jwakely@redhat.com>
2990
2991 PR libstdc++/103877
2992 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
2993 * doc/html/faq.html: Regenerate.
2994
29952022-01-05 Jonathan Wakely <jwakely@redhat.com>
2996
2997 * include/bits/regex.h (__regex_algo_impl): Change __policy and
2998 __match_mode template parameters to be function parameters.
2999 (regex_match, regex_search): Pass policy and match mode as
3000 function arguments.
3001 * include/bits/regex.tcc (__regex_algo_impl): Change template
3002 parameters to function parameters.
3003 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3004 'if constexpr' for conditions using template parameters.
3005 (_RegexTranslator): Likewise.
3006 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3007 Likewise.
3008 * testsuite/util/testsuite_regex.h (regex_match_debug)
3009 (regex_search_debug): Move template arguments to function
3010 arguments.
3011
30122022-01-05 Jonathan Wakely <jwakely@redhat.com>
3013
3014 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3015 results even if the match failed.
3016
30172022-01-05 Jonathan Wakely <jwakely@redhat.com>
3018
3019 * include/bits/regex_compiler.tcc: Adjust all calls to
3020 __throw_regex_error.
3021 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
3022 attribute.
3023 * include/bits/regex_scanner.tcc: Likewise.
3024 * src/c++11/regex.cc (desc): New helper function.
3025 (regex_error::regex_error(error_type)): Use desc to get a string
3026 corresponding to the error code.
3027
b4df5e92 3028\f
6123f29a 3029Copyright (C) 2022 Free Software Foundation, Inc.
b4df5e92
JW
3030
3031Copying and distribution of this file, with or without modification,
3032are permitted in any medium without royalty provided the copyright
3033notice and this notice are preserved.