]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
af3f12e6
GA
12021-07-27 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/experimental/optional (__throw_bad_optional_access):
4 Replace GNU attribute with C++11 attribute.
5 (optional::value, optional::value_or): Use if statements
6 instead of conditional expressions.
7 * include/std/optional (__throw_bad_optional_access)
8 (optional::value, optional::value_or): Likewise.
9
102021-07-27 Marek Polacek <polacek@redhat.com>
11
12 DR 1512
13 PR c++/99701
14 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
15 Move a line...
16 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
17 ...here. New test.
18
192021-07-27 Jonathan Wakely <jwakely@redhat.com>
20
21 * include/bits/cow_string.h: Consistently use tab for
22 indentation.
23
242021-07-27 Jonathan Wakely <jwakely@redhat.com>
25
26 * include/Makefile.am: Add new header.
27 * include/Makefile.in: Regenerate.
28 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
29 (basic_string): Move definition of Copy-on-Write string to
30 new file.
31 * include/bits/basic_string.tcc: Likewise.
32 * include/bits/cow_string.h: New file.
33
342021-07-27 Jonathan Wakely <jwakely@redhat.com>
35
36 * include/std/algorithm: Do not include <utility>.
37 * include/std/functional: Likewise.
38 * include/std/regex: Include <bits/stl_pair.h> instead of
39 <utility>.
40 * include/debug/map.h: Likewise.
41 * include/debug/multimap.h: Likewise.
42 * include/debug/multiset.h: Likewise.
43 * include/debug/set.h: Likewise.
44 * include/debug/vector: Likewise.
45 * include/bits/fs_path.h: Likewise.
46 * include/bits/unique_ptr.h: Do not include <utility>.
47 * include/experimental/any: Likewise.
48 * include/experimental/executor: Likewise.
49 * include/experimental/memory: Likewise.
50 * include/experimental/optional: Likewise.
51 * include/experimental/socket: Use __exchange instead
52 of std::exchange.
53 * src/filesystem/ops-common.h: Likewise.
54 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
55 errors to not use a hardcoded line number.
56 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
57 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
58 Include <utility> for std::as_const.
59 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
60 Likewise.
61 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
62 Likewise.
63 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
64 Likewise.
65 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
66 Adjust dg-error line number.
67
682021-07-27 Jonathan Wakely <jwakely@redhat.com>
69
70 * include/Makefile.am: Add bits/utility.h header.
71 * include/Makefile.in: Regenerate.
72 * include/bits/utility.h: New file.
73 * include/std/utility (tuple_size, tuple_element): Move
74 to new header.
75 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
76 Move to <tuple>.
77 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
78 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
79 * include/bits/ranges_util.h: Include new header instead of
80 <utility>.
81 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
82 partial specializations for std::pair here.
83 (get): Move overloads for std::pair here.
84 * include/std/any: Include new header instead of <utility>.
85 * include/std/array: Likewise.
86 * include/std/memory_resource: Likewise.
87 * include/std/optional: Likewise.
88 * include/std/variant: Likewise.
89 * include/std/tuple: Likewise.
90 (__is_tuple_like_impl<tuple<T...>>): Move here.
91 (get) Declare overloads for std::array.
92 * include/std/version (__cpp_lib_tuples_by_type): Change type
93 to long.
94 * testsuite/20_util/optional/84601.cc: Include <utility>.
95 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
96 Likewise.
97 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
98 Adjust dg-error line numbers.
99 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
100 * testsuite/std/ranges/access/cend.cc: Likewise.
101 * testsuite/std/ranges/access/end.cc: Likewise.
102 * testsuite/std/ranges/single_view.cc: Likewise.
103
ead235f6
GA
1042021-07-23 Jonathan Wakely <jwakely@redhat.com>
105
106 * include/std/future: Include <bits/atomic_base.h> instead of
107 <atomic>.
108
1092021-07-23 Jonathan Wakely <jwakely@redhat.com>
110
111 * include/bits/stl_relops.h: Update documentation comments.
112
01ac2f08
GA
1132021-07-22 Jonathan Wakely <jwakely@redhat.com>
114
115 PR libstdc++/101583
116 * include/bits/hashtable.h (_Hashtable): Replace mixin with
117 _Enable_default_ctor. Construct it explicitly in all
118 non-forwarding, non-defaulted constructors.
119 * testsuite/23_containers/unordered_map/cons/default.cc: Check
120 non-default constructors can be used.
121 * testsuite/23_containers/unordered_set/cons/default.cc:
122 Likewise.
123
1242021-07-22 David Edelsohn <dje.gcc@gmail.com>
125
126 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
127
1282021-07-22 Jonathan Wakely <jwakely@redhat.com>
129
130 PR libstdc++/94295
131 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
132 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
133 (allocator::allocate, allocator::deallocate): Use new macros.
134
1352021-07-22 Jonathan Wakely <jwakely@redhat.com>
136
137 PR libstdc++/101571
138 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
139 constructor parameter to reference and use addressof.
140 * testsuite/util/testsuite_iterators.h: Define deleted operator&
141 overloads for test iterators.
142
1432021-07-22 Jonathan Wakely <jwakely@redhat.com>
144
145 * include/bits/std_function.h (_Function_base): Add
146 default member initializers and define constructor as defaulted.
147 (function::_M_invoker): Add default member initializer.
148
1492021-07-22 Jonathan Wakely <jwakely@redhat.com>
150
151 PR libstdc++/100682
152 * doc/xml/manual/debug_mode.xml: Update documentation about
153 debug capability of std::array.
154 * doc/html/*: Regenerate.
155 * include/debug/array: New file.
156
419c6c68
GA
1572021-07-21 Jonathan Wakely <jwakely@redhat.com>
158
159 PR libstdc++/101542
160 * include/ext/rope (sequence_buffer): Add move constructor and
161 move assignment operator.
162 * testsuite/ext/rope/101542.cc: New test.
163
92d45509
GA
1642021-07-20 Jonathan Wakely <jwakely@redhat.com>
165
166 PR libstdc++/101510
167 * src/c++17/fs_ops.cc (fs::create_directories): Use status
168 instead of symlink_status.
169 * src/filesystem/ops.cc (fs::create_directories): Likewise.
170 * testsuite/27_io/filesystem/operations/create_directories.cc:
171 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
172 not test with symlinks on Windows.
173 * testsuite/experimental/filesystem/operations/create_directories.cc:
174 * testsuite/experimental/filesystem/operations/create_directory.cc:
175 Do not test with symlinks on Windows.
176
1772021-07-20 Jonathan Wakely <jwakely@redhat.com>
178
179 PR libstdc++/100863
180 * include/bits/hashtable.h (_Hashtable): Conditionally delete
181 default constructor by deriving from _Enable_special_members.
182 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
183 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
184
1852021-07-20 Jonathan Wakely <jwakely@redhat.com>
186
187 PR libstdc++/101510
188 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
189 * testsuite/27_io/filesystem/operations/create_directory.cc:
190 Test creating directory with name of existing symlink to
191 directory.
192 * testsuite/experimental/filesystem/operations/create_directory.cc:
193 Likewise.
194
87277b6a
GA
1952021-07-16 Jonathan Wakely <jwakely@redhat.com>
196
197 * include/std/tuple (get<I>): Add deleted overload for bad
198 index.
199 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
200 expected errors.
201
2022021-07-16 Jonathan Wakely <jwakely@redhat.com>
203
204 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
205 Use __int_traits unconditionally.
206
2072021-07-16 Jonathan Wakely <jwakely@redhat.com>
208
209 * include/bits/random.h (_Shift::__value): Use constexpr.
210 (_Select_uint_least_t::type): Use using-declaration.
211 (_Mod): Likewise.
212 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
213 line number.
214
2152021-07-16 Jonathan Wakely <jwakely@redhat.com>
216
217 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
218 instead of diagnostic pragmas.
219 * include/bits/functional_hash.h: Likewise.
220 * include/bits/iterator_concepts.h (__is_signed_int128)
221 (__is_unsigned_int128): Likewise.
222 * include/bits/max_size_type.h (__max_size_type): Likewise.
223 (numeric_limits<__max_size_type>): Likewise.
224 * include/bits/std_abs.h (abs): Likewise.
225 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
226 * include/bits/uniform_int_dist.h (uniform_int_distribution):
227 Likewise.
228 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
229 Likewise.
230 * include/std/type_traits (__is_integral_helper<INT_N>)
231 (__is_signed_integer, __is_unsigned_integer)
232 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
233 * include/std/limits (__INT_N): Add __extension__ keyword.
234 * include/bits/random.h (_Select_uint_least_t)
235 (random_device): Likewise.
236
2372021-07-16 Patrick Palka <ppalka@redhat.com>
238
239 PR libstdc++/101231
240 * include/std/ranges (_CachedPosition::_M_get): For non-forward
241 ranges, just call __builtin_unreachable.
242 * testsuite/std/ranges/istream_view.cc (test05): New test.
243
2442021-07-16 Patrick Palka <ppalka@redhat.com>
245
246 PR libstdc++/101214
247 * include/std/ranges (split_view::split_view): Use std::move.
248 (split_view::_Iterator::_Iterator): Remove redundant
249 default_initializable constraint.
250 (split_view::_Sentinel::_Sentinel): Declare.
251 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
252
2532021-07-16 Marek Polacek <polacek@redhat.com>
254
255 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
256 dg-error.
257
2582021-07-16 Jonathan Wakely <jwakely@redhat.com>
259
260 * include/bits/unique_ptr.h: Adjust doxygen markup.
261
2622021-07-16 Jonathan Wakely <jwakely@redhat.com>
263
264 PR libstdc++/101307
265 * include/std/type_traits: Adjust doxygen markup.
266
2672021-07-16 Jonathan Wakely <jwakely@redhat.com>
268
269 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
270 uses of non-standard integer types.
271 * include/bits/functional_hash.h: Likewise.
272 * include/bits/iterator_concepts.h: Likewise.
273 * include/bits/max_size_type.h: Likewise.
274 * include/bits/std_abs.h: Likewise.
275 * include/bits/stl_algobase.h: Likewise.
276 * include/bits/uniform_int_dist.h: Likewise.
277 * include/ext/numeric_traits.h: Likewise.
278 * include/std/type_traits: Likewise.
279
d97d71a1
GA
2802021-07-15 Jonathan Wakely <jwakely@redhat.com>
281
282 PR libstdc++/101427
283 * include/std/tuple (tuple_element): Improve static_assert text.
284 (__get_helper): Add deleted overload.
285 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
286 __get_helper directly.
287 (__get_helper2): Remove.
288 (__find_uniq_type_in_pack): New constexpr helper function.
289 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
290 of __get_helper2.
291 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
292 expected errors.
293 * testsuite/20_util/tuple/element_access/101427.cc: New test.
294
2952021-07-15 Jonathan Wakely <jwakely@redhat.com>
296
297 PR libstdc++/101429
298 * include/bits/c++config (__replacement_assert): Add noexcept.
75815591 299 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
d97d71a1
GA
300 instead of __replacement_assert.
301
c4fee1c6
GA
3022021-07-14 Jonathan Wakely <jwakely@redhat.com>
303
304 * include/std/string_view (basic_string_view(It, End)): Add
305 noexcept-specifier.
306 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
307 Check noexcept-specifier. Also check construction without CTAD.
308
0e775456
GA
3092021-07-13 Jonathan Wakely <jwakely@redhat.com>
310
311 PR c++/101361
312 * include/std/string_view (ends_with): Use traits_type::compare
313 directly.
314
3152021-07-13 Jonathan Wakely <jwakely@redhat.com>
316
317 * include/std/string_view: Only include <bits/ranges_base.h>
318 once, and only for C++20 and later.
319
07bcbf9c
GA
3202021-07-12 Jonathan Wakely <jwakely@redhat.com>
321
322 PR libstdc++/101411
323 * include/std/span (as_writable_bytes): Add requires-clause.
324 * testsuite/23_containers/span/101411.cc: New test.
325
ef2ace64
GA
3262021-07-09 Matheus Castanho <msc@linux.ibm.com>
327
328 * include/std/mutex (__lock_impl): Check
329 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
330
7a60a6e8
GA
3312021-07-02 Jonathan Wakely <jwakely@redhat.com>
332
333 PR libstdc++/101271
334 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
335 Remove noexcept-specifier.
336 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
337 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
338 operator[].
339
bea7c16a
GA
3402021-07-01 Jonathan Wakely <jwakely@redhat.com>
341
342 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
343 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
344 Add some more predefined macros.
345 * include/bits/fs_fwd.h: Move @addtogroup commands inside
346 namespaces. Add better documentation.
347 * include/bits/fs_path.h: Likewise.
348 * include/experimental/bits/fs_fwd.h: Likewise.
349 * include/experimental/bits/fs_path.h: Likewise.
350 * include/ext/throw_allocator.h: Fix typo and improve docs.
351 * include/std/chrono: Move @addtogroup commands.
352 * include/std/system_error: Move @addtogroup commands.
353 * libsupc++/exception: Improve documentation.
354 * libsupc++/exception.h: Add @since documentation.
355
25b6bfea
GA
3562021-06-30 Jonathan Wakely <jwakely@redhat.com>
357
358 PR libstdc++/101258
359 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
360 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
361 (PREDEFINED): Add/fix some more macros that need to be expanded.
362 * include/bits/random.h: Stop Doxygen from documenting internal
363 implementation details.
364 * include/bits/random.tcc: Likewise.
365 * include/bits/this_thread_sleep.h: Fix @file name.
366 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
367 document internal implementation details.
368 * include/experimental/bits/simd_detail.h: Do not document
369 internal implementation details.
370 * include/experimental/simd: Define Doxygen groups.
371 * include/experimental/type_traits: Improve documentation for
372 the header file. Define groups. Use @since commands.
373 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
374 declaration before undocumented region.
375 * include/std/type_traits (true_type, false_type): Use using
376 declaration instead of typedef.
377 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
378 (is_nothrow_invocable_r_v): Move definitions next to other C++17
379 variable templates.
380 Do not document internal implementation details. Move misplaced
381 group-end command. Define group for variable templates.
382 * include/std/variant: Do not document internal implementation
383 details.
384 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
385 line number.
386
3872021-06-30 Jonathan Wakely <jwakely@redhat.com>
388
389 * include/experimental/simd: Do not define anything pre-C++17.
390
3912021-06-30 Jonathan Wakely <jwakely@redhat.com>
392
393 * include/bits/random.tcc [__cpp_inline_variables]: Remove
394 redundant definitions of static constexpr member variables.
395 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
396 line number.
397
c8abc205
GA
3982021-06-28 Jonathan Wakely <jwakely@redhat.com>
399
400 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
401 explicit instantiation declarations.
402 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
403 explicit instantiation definitions.
404
4052021-06-28 Jonathan Wakely <jwakely@redhat.com>
406
407 PR libstdc++/97088
408 * testsuite/17_intro/names.cc: Fix #if condition for names used
409 by newlib headers.
410
4112021-06-28 Jonathan Wakely <jwakely@redhat.com>
412
413 PR libstdc++/101236
414 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
415 Fail gracefully if element_type is incomplete.
416 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
417 the standard doesn't require this test to work for array types.
418 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
419 types can be used with array specialization.
420 * testsuite/20_util/unique_ptr/101236.cc: New test.
421
4222021-06-28 Jonathan Wakely <jwakely@redhat.com>
423
424 * doc/xml/manual/intro.xml: Document LWG 415 change.
425 * doc/html/manual/bugs.html: Regenerate.
426 * include/bits/istream.tcc (ws): Create sentry and catch
427 exceptions.
428 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
429 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
430
90708f87
GA
4312021-06-25 Jonathan Wakely <jwakely@redhat.com>
432
433 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
434 directly instead of using _M_write. Do setstate(__err) all
435 outside the try-catch block.
436 * include/std/ostream (basic_ostream::_M_write): Declare
437 private. Use __ostream_insert. Do not define for the versioned
438 namespace.
439
4402021-06-25 Jonathan Wakely <jwakely@redhat.com>
441
442 * doc/xml/manual/intro.xml: Document LWG 581 change.
443 * doc/html/manual/bugs.html: Regenerate.
444 * include/bits/basic_ios.tcc: Whitespace.
445 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
446 sentry.
447 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
448 additional cases.
449 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
450 Likewise.
451 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
452 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
453 Likewise.
454
4552021-06-25 Jonathan Wakely <jwakely@redhat.com>
456
457 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
458 is set, not if eofbit is set.
459 (tellp, seekp, seekp): Create sentry object. Do not set badbit
460 on exceptions.
461 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
462 Adjust expected behaviour.
463 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
464 Likewise.
465 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
466 Likewise.
467 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
468 Likewise.
469 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
470 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
471 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
472 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
473
4742021-06-25 Jonathan Wakely <jwakely@redhat.com>
475
476 * include/std/syncstream (basic_syncbuf::swap()): Remove
477 noexcept, as per LWG 3498.
478
4792021-06-25 Jonathan Wakely <jwakely@redhat.com>
480
481 PR libstdc++/97088
482 * testsuite/17_intro/names.cc: Undef more names for newlib and
483 also for arm-none-linux-gnueabi.
484 * testsuite/experimental/names.cc: Disable PCH.
485
4862021-06-25 Matthias Kretz <m.kretz@gsi.de>
487
488 * include/experimental/bits/simd.h (__bit_cast): Implement via
489 __builtin_bit_cast #if available.
490 (__proposed::simd_bit_cast): Add overloads for simd and
491 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
492 available), which return an object of the requested type with
493 the same bits as the argument.
494 * include/experimental/bits/simd_math.h: Use simd_bit_cast
495 instead of __bit_cast to allow casts to fixed_size_simd.
496 (copysign): Remove branch that was only required if __bit_cast
497 cannot be constexpr.
498 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
499 from __bit_cast to __proposed::simd_bit_cast since the former
500 will not cast fixed_size objects anymore.
501
9aa8327e
GA
5022021-06-24 Matthias Kretz <m.kretz@gsi.de>
503
504 * include/experimental/bits/simd_math.h
505 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
506 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
507 __arg3.
508
5092021-06-24 Matthias Kretz <m.kretz@gsi.de>
510
511 * include/experimental/bits/simd.h (__execute_on_index_sequence)
512 (__execute_on_index_sequence_with_return)
513 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
514 attribute.
515
5162021-06-24 Matthias Kretz <m.kretz@gsi.de>
517
518 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
519 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
520 roundp[sd] calls.
521
5222021-06-24 Matthias Kretz <m.kretz@gsi.de>
523
524 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
525 implementation doesn't require a _VecBltnBtmsk ABI tag, it
526 requires either a 64-Byte input (in which case AVX512F must be
527 available) or AVX512VL.
528
5292021-06-24 Matthias Kretz <m.kretz@gsi.de>
530
531 * include/experimental/bits/simd_math.h: Undefine internal
532 macros after use.
533 (frexp): Move #if to a more sensible position and reformat
534 preceding code.
535 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
536 duplicating the code here.
537 (modf): Simplify condition.
538
5392021-06-24 Matthias Kretz <m.kretz@gsi.de>
540
541 * include/experimental/bits/simd_math.h (fabs): Remove
542 fabs(simd<integral>) overload.
543
5442021-06-24 Matthias Kretz <m.kretz@gsi.de>
545
546 * include/experimental/bits/simd_converter.h
547 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
548 * include/experimental/bits/simd_fixed_size.h
549 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
550 arguments by const-ref.
551 (_S_masked_unary): Pass _SimdTuple by const-ref.
552
5532021-06-24 Matthias Kretz <m.kretz@gsi.de>
554
555 * include/experimental/bits/simd_fixed_size.h
556 (_AbisInSimdTuple): Removed.
557
5582021-06-24 Matthias Kretz <m.kretz@gsi.de>
559
560 * include/experimental/bits/simd.h: Add missing operator~
561 overload for simd<floating-point> to __float_bitwise_operators.
562 * include/experimental/bits/simd_builtin.h
563 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
564 implement complement for floating-point vectors.
565 * include/experimental/bits/simd_fixed_size.h
566 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
567 copysign implementation of _SimdTuple members.
568 * include/experimental/bits/simd_math.h (copysign): Call
569 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
570 generic copysign implementation using the new ~ operator.
571
5722021-06-24 Jonathan Wakely <jwakely@redhat.com>
573
574 * testsuite/experimental/simd/README.md: Fix typos.
575
5762021-06-24 Jonathan Wakely <jwakely@redhat.com>
577
578 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
579 Add noexcept.
580 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
581 conditional noexcept as per LWG 2762.
582 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
583 dereferencing cannot throw.
584 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
585 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
586 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
587
fcf617f0
GA
5882021-06-23 Patrick Palka <ppalka@redhat.com>
589
590 PR c++/101174
591 * testsuite/23_containers/multiset/cons/deduction.cc:
592 Uncomment CTAD example that was rejected by this bug.
593 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
594
5952021-06-23 Jonathan Wakely <jwakely@redhat.com>
596
597 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
598 logic in comment.
599
6002021-06-23 Matthias Kretz <m.kretz@gsi.de>
601
602 * testsuite/experimental/simd/README.md: New file.
603
6042021-06-23 Matthias Kretz <m.kretz@gsi.de>
605
606 * testsuite/experimental/simd/driver.sh: Rewrite output
607 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
608 to be used twice. Add -x and -o short options. Parse long
609 options with = instead of separating space generically. Parce
610 contracted short options. Make unrecognized options an error.
611 If same-line output is active, trap on EXIT to increment the
612 progress (only with --percentage), erase the line and print the
613 current status.
614 * testsuite/experimental/simd/generate_makefile.sh: Initialize
615 helper files for progress account keeping. Update help target
616 for changes to DRIVEROPTS.
617
6182021-06-23 Matthias Kretz <m.kretz@gsi.de>
619
620 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
621 and associated warning.
622 * testsuite/Makefile.in: Regenerate.
623
6242021-06-23 Cassio Neri <cassio.neri@gmail.com>
625 Jonathan Wakely <jwakely@redhat.com>
626 Ulrich Drepper <drepper@redhat.com>
627
628 * include/std/chrono (chrono::year::is_leap()): Optimize.
629
6302021-06-23 Patrick Palka <ppalka@redhat.com>
631
632 PR c++/86439
633 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
634 CTAD examples.
635 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
636 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
637 Mention one of the replaced examples is broken due to PR101174.
638 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
639 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
640 ambiguous CTAD examples.
641 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
642 Likewise.
643 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
644 Likewise.
645 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
646
6472021-06-23 Jonathan Wakely <jwakely@redhat.com>
648
649 * include/std/mutex (__detail::__try_lock_impl): Rename
650 parameter to avoid clashing with newlib's __lockable macro.
651 (try_lock): Add 'inline' specifier.
652 * testsuite/17_intro/names.cc: Add check for __lockable.
653 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
654
419af06a
GA
6552021-06-22 Jonathan Wakely <jwakely@redhat.com>
656 Matthias Kretz <m.kretz@gsi.de>
657
658 * include/std/mutex (lock): Replace recursion with iteration
659 when lockables all have the same type.
660 (__detail::__try_lock_impl): Likewise. Pass lockables as
661 parameters, instead of a tuple. Always lock the first one, and
662 recurse for the rest.
663 (__detail::__lock_impl): Adjust call to __try_lock_impl.
664 (__detail::__try_to_lock): Remove.
665 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
666 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
667 arguments.
668 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
669 std::try_lock.
670 * testsuite/30_threads/try_lock/5.cc: New test.
671
6722021-06-22 Jonathan Wakely <jwakely@redhat.com>
673
674 * include/std/memory (declare_reachable, undeclare_reachable)
675 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
676 (pointer_safety): Only define for C++11 to C++20 inclusive.
677 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
678
6792021-06-22 Jonathan Wakely <jwakely@redhat.com>
680
681 * include/bits/random.h (seed_seq): Constrain initializer-list
682 constructor.
683 * include/bits/random.tcc (seed_seq): Add template parameter.
684 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
685 for noexcept.
686 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
687 constraints.
688
6892021-06-22 Thomas Rodgers <rodgert@appliantology.com>
690
691 PR libstdc++/100806
692 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
693 Force _M_release() to wake all waiting threads.
694 * testsuite/30_threads/semaphore/100806.cc: New test.
695
2f080224
GA
6962021-06-21 Jonathan Wakely <jwakely@redhat.com>
697
698 * include/std/mutex (__try_to_lock): Move to __detail namespace.
699 (struct __try_lock_impl): Replace with ...
700 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
701 function templates to implement std::try_lock.
702 (try_lock): Use new __try_lock_impl.
703 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
704 template to implement std::lock.
705 (lock): Use __lock_impl.
706
7072021-06-21 Patrick Palka <ppalka@redhat.com>
708
709 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
710
3e42ff71
GA
7112021-06-20 Patrick Palka <ppalka@redhat.com>
712
713 * include/std/ranges (__non_propagating_cache::operator bool):
714 Define for split_view::begin().
715 (split_view): Define as per P2210.
716 (views::__detail::__can_split_view): Define.
717 (views::_Split, views::split): Define.
718 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
719 Test views::split.
720 * testsuite/std/ranges/adaptors/split.cc: New test.
721 * testsuite/std/ranges/p2325.cc (test08a): New test.
722 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
723
7242021-06-20 Patrick Palka <ppalka@redhat.com>
725
726 * include/std/ranges: Rename views::split to views::lazy_split,
727 split_view to lazy_split_view, etc. throughout.
728 * testsuite/std/ranges/*: Likewise.
729 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
730 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
731
7322021-06-20 Patrick Palka <ppalka@redhat.com>
733
734 * include/std/ranges (split_view::_OuterIter::__at_end):
735 Check _M_trailing_empty.
736 (split_view::_OuterIter::_M_trailing_empty): Define this
737 data member.
738 (split_view::_OuterIter::operator++): Set _M_trailing_empty
739 appropriately.
740 (split_view::_OuterIter::operator==): Compare
741 _M_trailing_empty.
742 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
743 split parts instead of one.
744 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
745
7462021-06-20 Patrick Palka <ppalka@redhat.com>
747
748 * include/std/ranges (split_view::_InnerIter::base): Define as
749 per P2210.
750
b245d1c3
GA
7512021-06-19 Patrick Palka <ppalka@redhat.com>
752
753 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
754 Consider _Base instead of _Vp as per LWG 3555.
755 (elements_view::_Iterator::_S_iter_concept): Likewise.
756
7572021-06-19 Patrick Palka <ppalka@redhat.com>
758
759 * include/std/ranges (split_view::_OuterIter::value_type::begin):
760 Remove the non-const overload, and remove the copyable constraint
761 on the const overload as per LWG 3553.
762
7632021-06-19 Patrick Palka <ppalka@redhat.com>
764
765 * include/bits/stl_iterator.h
766 (__detail::__common_iter_use_postfix_proxy): Add
767 move_constructible constraint as per LWG 3546.
768 (common_iterator::__postfix_proxy): Adjust initializer of
769 _M_keep as per LWG 3546.
770
c5581d48
GA
7712021-06-18 Patrick Palka <ppalka@redhat.com>
772
773 PR libstdc++/100387
774 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
775 to limit comparison complexity to 3*N/2.
776 (__minmax_element_fn::operator()): Likewise.
777 (shift_right): Avoid premature std::move of __result.
778 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
779 New tests.
780 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
781 Likewise.
782
7832021-06-18 Patrick Palka <ppalka@redhat.com>
784
785 * include/std/concepts (convertible_to): Just use declval as per
786 LWG 3557.
787
7882021-06-18 Jonathan Wakely <jwakely@redhat.com>
789
790 PR libstdc++/95833
791 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
792 incorrect static_assert with ones matching the 'Mandates'
793 conditions in the standard.
794 * testsuite/26_numerics/reduce/95833.cc: New test.
795
7962021-06-18 Jonathan Wakely <jwakely@redhat.com>
797
798 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
799 diagnostic pragma to suppress -Wstringop-overread error.
800
8012021-06-18 Patrick Palka <ppalka@redhat.com>
802
803 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
804 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
805 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
806 * include/bits/ranges_util.h: ... here.
807 * include/std/ranges (__detail::find, __detail::find_if)
808 (__detail::find_if_not, __detail::mismatch): Remove.
809 (filter_view): Use ranges::find_if instead.
810 (drop_while_view): Use ranges::find_if_not instead.
811 (split_view): Use ranges::find and ranges::mismatch instead.
812
8132021-06-18 Patrick Palka <ppalka@redhat.com>
814
815 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
816 default_initializable requirement.
817 * include/bits/ranges_base.h (ranges::view): Likewise.
818 * include/bits/ranges_util.h (subrange): Constrain the default
819 ctor.
820 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
821 default ctor.
822 (front_insert_iterator): Likewise.
823 (insert_iterator): Likewise. Remove NSDMIs.
824 (common_iterator): Constrain the default ctor.
825 (counted_iterator): Likewise.
826 * include/bits/stream_iterator.h (ostream_iterator): Remove the
827 default ctor.
828 * include/std/ranges (__detail::__box::operator=): Handle
829 self-assignment in the primary template.
830 (__detail::__box): In the partial specialization: adjust
831 constraints as per P2325. Add specialized operator= for the
832 case when the wrapped type is not copyable. Constrain the
833 default ctor. Avoid list-initialization.
834 (single_view): Constraint the default ctor.
835 (iota_view): Relax semiregular constraint to copyable.
836 Constrain the default ctor.
837 (iota_view::_Iterator): Constraint the default ctor.
838 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
839 Remove redundant checks for empty _M_stream.
840 (basic_istream_view::_Iterator): Likewise.
841 (ref_view): Remove the default ctor. Remove NSDMIs.
842 (ref_view::_Iterator): Constrain the default ctor.
843 (__detail::__non_propagating_cache::operator=): Define overload
844 for assigning from a value of the underlying type.
845 (filter_view): Likewise.
846 (filter_view::_Iterator): Likewise.
847 (transform_view): Likewise.
848 (transform_view::_Iterator): Likewise.
849 (take_view): Likewise.
850 (take_view::_Iterator): Likewise.
851 (take_while_view): Likewise.
852 (take_while_view::_Iterator): Likewise.
853 (drop_while_view): Likewise.
854 (drop_while_view::_Iterator): Likewise.
855 (join_view): Likewise.
856 (split_view::_OuterIter::__current): Adjust after changing the
857 type of _M_current.
858 (split_view::_M_current): Wrap it in a __non_propagating_cache.
859 (split_view::split_view): Constrain the default ctor.
860 (common_view): Constrain the default ctor.
861 (reverse_view): Likewise.
862 (elements_view): Likewise.
863 * include/std/span (enable_view<span<_ElementType, _Extent>>):
864 Define this partial specialization to true unconditionally.
865 * include/std/version (__cpp_lib_ranges): Adjust value.
866 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
867 Don't attempt to default construct a back_insert_iterator.
868 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
869 Don't attempt to default construct a front_insert_iterator.
870 * testsuite/24_iterators/insert_iterator/constexpr.cc:
871 Don't attempt to default construct an insert_iterator.
872 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
873 Remove this test for default constructibility of ostream_iterator.
874 * testsuite/std/ranges/97600.cc: Don't attempt to default
875 construct a basic_istream_view.
876 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
877 Rename to ...
878 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
879 (test02): Adjust now that __box is copyable-box not
880 semiregular-box.
881 (test03): New test.
882 * testsuite/std/ranges/p2325.cc: New test.
883 * testsuite/std/ranges/single_view.cc (test06): New test.
884 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
885 require default_initializable.
886
688359a2
GA
8872021-06-17 Jonathan Wakely <jwakely@redhat.com>
888
889 PR libstdc++/91488
890 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
891 define when is_constant_evaluated is available.
892 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
893 Likewise.
894 (__constant_string_p, __constant_array_p): Remove.
895 (char_traits): Use is_constant_evaluated directly.
896 * include/std/version (__cpp_lib_constexpr_char_traits)
897 (__cpp_lib_constexpr_string): Only define when
898 is_constant_evaluated is available.
899
9002021-06-17 Patrick Palka <ppalka@redhat.com>
901
902 PR libstdc++/100940
903 * include/std/ranges (__adaptor::_Partial): For the "simple"
904 forwarding partial specializations, also require that
905 the extra arguments are trivially copyable.
906 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
907
9082021-06-17 Patrick Palka <ppalka@redhat.com>
909
910 PR libstdc++/100940
911 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
912 template form of _S_has_simple_extra_args.
913 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
914 parameter pack. Try to treat _S_has_simple_extra_args as a
915 variable template parameterized by _Args.
916 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
917 __adaptor_has_simple_extra_args.
918 (views::_Take::_S_has_simple_extra_args): Templatize according
919 to the type of the extra argument.
920 (views::_Drop::_S_has_simple_extra_args): Likewise.
921 (views::_Split::_S_has_simple_extra_args): Define.
922 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
923 Adjust after changes to _S_has_simple_extra_args mechanism.
924 (test03): Define.
925
9a61dfdb
GA
9262021-06-16 Jonathan Wakely <jwakely@redhat.com>
927
928 * include/bits/iterator_concepts.h (__decay_copy): Name type.
929
9302021-06-16 Jonathan Wakely <jwakely@redhat.com>
931
932 * include/bits/ranges_base.h (ranges::begin, ranges::end)
933 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
934 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
935 (ranges::empty, ranges::data, ranges::cdata): Remove final
936 keywords and deleted operator& overloads.
937 * testsuite/24_iterators/customization_points/iter_move.cc: Use
938 new is_customization_point_object function.
939 * testsuite/24_iterators/customization_points/iter_swap.cc:
940 Likewise.
941 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
942 Likewise.
943 * testsuite/std/ranges/access/begin.cc: Likewise.
944 * testsuite/std/ranges/access/cbegin.cc: Likewise.
945 * testsuite/std/ranges/access/cdata.cc: Likewise.
946 * testsuite/std/ranges/access/cend.cc: Likewise.
947 * testsuite/std/ranges/access/crbegin.cc: Likewise.
948 * testsuite/std/ranges/access/crend.cc: Likewise.
949 * testsuite/std/ranges/access/data.cc: Likewise.
950 * testsuite/std/ranges/access/empty.cc: Likewise.
951 * testsuite/std/ranges/access/end.cc: Likewise.
952 * testsuite/std/ranges/access/rbegin.cc: Likewise.
953 * testsuite/std/ranges/access/rend.cc: Likewise.
954 * testsuite/std/ranges/access/size.cc: Likewise.
955 * testsuite/std/ranges/access/ssize.cc: Likewise.
956 * testsuite/util/testsuite_iterators.h
957 (is_customization_point_object): New function.
958
ede6c356
GA
9592021-06-15 Jonathan Wakely <jwakely@redhat.com>
960
961 * include/bits/ranges_base.h (ranges::begin, ranges::end)
962 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
963 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
964 (ranges::empty, ranges::data, ranges::cdata): Make types final.
965 Add deleted operator& overloads.
966 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
967 Likewise.
968 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
969 ill-formed & expressions with using-declarations. Add checks for
970 other function objects.
971
9722021-06-15 Jonathan Wakely <jwakely@redhat.com>
973
974 * include/bits/ranges_util.h (view_interface): Add noexcept to
975 empty, operator bool, data and size members.
976 (subrange): Add noexcept to constructors.
977 * include/std/ranges (single_view, ref_view): Add noexcept to
978 constructors.
979 (views::single, views::all): Add noexcept.
980 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
981 * testsuite/std/ranges/single_view.cc: Likewise.
982
9832021-06-15 Jonathan Wakely <jwakely@redhat.com>
984
985 * include/bits/ranges_util.h (subrange): Add __size_type typedef
986 and use it to simplify declarations.
987 (subrange(i, s, n)): Remove assertion.
988 * testsuite/std/ranges/subrange/constexpr.cc: New test.
989
9902021-06-15 Jonathan Wakely <jwakely@redhat.com>
991
992 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
993 Replace with function object.
994 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
995 __decay_copy unqualified.
996 * include/bits/ranges_base.h (__member_end, __adl_end):
997 Likewise. Use __range_iter_t for type of ranges::begin.
998 (__member_rend): Use correct value category for rbegin argument.
999 (__member_data): Use __decay_copy unqualified.
1000 (__begin_data): Use __range_iter_t for type of ranges::begin.
1001
8dc48181
GA
10022021-06-14 Jonathan Wakely <jwakely@redhat.com>
1003
1004 * include/bits/ranges_base.h (ranges::empty): Check whether
1005 conversion to bool can throw.
1006 * testsuite/std/ranges/access/empty.cc: Check for correct
1007 noexcept-specifier.
1008
10092021-06-14 Jonathan Wakely <jwakely@redhat.com>
1010
1011 PR libstdc++/100894
1012 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
1013 use the type if it's a reference.
1014 * testsuite/20_util/common_reference/100894.cc: New test.
1015
10162021-06-14 Jonathan Wakely <jwakely@redhat.com>
1017
1018 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1019 Add dg-require-filesystem-ts directive.
1020
10212021-06-14 Jonathan Wakely <jwakely@redhat.com>
1022
1023 PR libstdc++/101034
1024 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
1025 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
1026 to use lvalue.
1027 * testsuite/20_util/any/cons/101034.cc: New test.
1028
10292021-06-14 Jonathan Wakely <jwakely@redhat.com>
1030
1031 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
1032 -std=gnu++17 option.
1033
10342021-06-14 Jonathan Wakely <jwakely@redhat.com>
1035
1036 PR libstdc++/101056
1037 * libsupc++/compare (compare_partial_order_fallback): Add
1038 constraint using reversed parameter order, as per LWG 3465.
1039 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1040 Adjust expected result.
1041
10422021-06-14 Jonathan Wakely <jwakely@redhat.com>
1043
1044 * libsupc++/compare (__decayed_same_as): New helper concept.
1045 (strong_order, weak_order, partial_order): Constrain with new
1046 concept instead of using static_assert.
1047 (compare_strong_order_fallback, compare_weak_order_fallback)
1048 (compare_partial_order_fallback): Likewise. Do not deduce return
1049 types. Remove redundant if-constexpr checks.
1050 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
1051
10522021-06-14 Jonathan Wakely <jwakely@redhat.com>
1053
1054 PR libstdc++/101055
1055 * include/std/tuple: Use reserved form of attribute name.
1056 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
1057 check for no_unique_address.
1058 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1059 Likewise.
1060 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1061 Likewise.
1062
f16f65f8
GA
10632021-06-11 Jonathan Wakely <jwakely@redhat.com>
1064
1065 * include/bits/fs_path.h (operator==, operator<=>): Use new
1066 _S_compare function.
1067 (path::_S_compare): New function to call path::compare in a
1068 context where path::iterator is complete.
1069 * include/experimental/bits/fs_path.h (operator<, operator==):
1070 Define after path::iterator is complete.
1071 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
1072 test.
1073 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1074 New test.
1075
4f625f47
GA
10762021-06-09 Thomas Rodgers <rodgert@appliantology.com>
1077
1078 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
1079 test logic with constexpr check for is_always_lock_free.
1080
10812021-06-09 Jonathan Wakely <jwakely@redhat.com>
1082
1083 PR libstdc++/100982
1084 * include/std/optional (optional::operator=(const optional<U>&)):
1085 Fix value category used in is_assignable check.
1086 * testsuite/20_util/optional/assignment/100982.cc: New test.
1087
10882021-06-09 Jonathan Wakely <jwakely@redhat.com>
1089
1090 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
1091 * include/bits/iterator_concepts.h (indirectly_readable_traits):
1092 Add LWG issue number to comment.
1093 * include/std/memory_resource (polymorphic_allocator::release):
1094 Deprecate.
1095 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
1096 dg-warning for deprecation. Also check std::allocator<void>.
1097
c6038721
GA
10982021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1099
1100 PR libstdc++/100889
1101 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
1102 Change parameter type from _Tp to _Tp*.
1103 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
1104 coverage of types tested.
1105
11062021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1107
1108 * include/std/barrier (__tree_barrier::_M_arrive): Remove
1109 unnecessary hasher instantiation.
1110
11112021-06-08 Jonathan Wakely <jwakely@redhat.com>
1112
1113 * include/experimental/propagate_const (swap): Constrain.
1114 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
1115
438aac59
GA
11162021-06-07 Avi Kivity <avi@scylladb.com>
1117
1118 PR libstdc++/100900
1119 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
1120 Add missing typename.
1121
11222021-06-07 Jonathan Wakely <jwakely@redhat.com>
1123
1124 PR libstdc++/98842
1125 * include/std/optional (operator<=>(const optional<T>& const U&)):
1126 Add missing constraint and add workaround for template
1127 recursion.
1128 * testsuite/20_util/optional/relops/three_way.cc: Check that
1129 type without equality comparison cannot be compared when wrapped
1130 in std::optional.
1131
28c62475
GA
11322021-06-05 Jonathan Wakely <jwakely@redhat.com>
1133
1134 PR libstdc++/100824
1135 * include/bits/ranges_base.h (_SSize): Return signed type.
1136 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
1137
600f90cb
GA
11382021-06-04 Jonathan Wakely <jwakely@redhat.com>
1139
1140 * include/bits/ranges_base.h (_SSize): Return the result of
1141 ranges::size converted to the wider of make-signed-like-t<S> and
1142 ptrdiff_t, rather than the ranges different type.
1143 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
1144 for an iota_view that uses an integer class type for its
1145 difference_type.
1146
11472021-06-04 Jonathan Wakely <jwakely@redhat.com>
1148
1149 PR libstdc++/100824
1150 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
1151 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
1152
11532021-06-04 Jonathan Wakely <jwakely@redhat.com>
1154
1155 PR libstdc++/100824
1156 * include/bits/iterator_concepts.h (__detail::__decay_copy)
1157 (__detail::__member_begin, __detail::__adl_begin): Move to
1158 namespace ranges::__cust_access.
1159 (__detail::__ranges_begin): Likewise, and rename to __begin.
1160 Remove redundant static assertion.
1161 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
1162 Use lvalue in noexcept specifier.
1163 (__as_const): Add non-deduced parameter for value category.
1164 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
1165 __as_const.
1166 (__member_size, __adl_size, __member_empty, __size0_empty):
1167 (__eq_iter_empty, __adl_data): Use lvalue objects in
1168 requirements.
1169 (__sentinel_size): Likewise. Add check for conversion to
1170 unsigned-like.
1171 (__member_data): Allow non-lvalue types to satisfy the concept,
1172 but use lvalue object in requirements.
1173 (_Size, _SSize): Remove forwarding to always use an lvalue.
1174 (_Data): Likewise. Add static assertion for arrays.
1175 * testsuite/std/ranges/access/cdata.cc: Adjust expected
1176 behaviour for rvalues. Add negative tests for ill-formed
1177 expressions.
1178 * testsuite/std/ranges/access/data.cc: Likewise.
1179 * testsuite/std/ranges/access/empty.cc: Adjust expected
1180 behaviour for rvalues.
1181 * testsuite/std/ranges/access/size.cc: Likewise.
1182
11832021-06-04 Tim Adye <Tim.Adye@cern.ch>
1184
1185 * include/std/any (any::_Manager::_S_access): New static
1186 function to access the contained value.
1187 (any::emplace, __any_caster): Use _S_access member of the
1188 manager type.
1189
11902021-06-04 Jonathan Wakely <jwakely@redhat.com>
1191
1192 * doc/xml/manual/status_cxx2020.xml:
1193 * doc/html/*: Regenerate.
1194 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
1195 Define.
1196 * include/std/version (__cpp_lib_generic_unordered_lookup):
1197 Define.
1198 * testsuite/23_containers/unordered_map/operations/1.cc: Check
1199 feature test macro.
1200 * testsuite/23_containers/unordered_set/operations/1.cc:
1201 Likewise.
1202
440c8a0a
GA
12032021-06-03 Patrick Palka <ppalka@redhat.com>
1204
1205 * include/bits/ranges_algo.h (__detail::__can_reread_output):
1206 Factor out this concept from ...
1207 (__unique_copy_fn::operator()): ... here. Use the concept
1208 throughout.
1209 * testsuite/std/ranges/range.cc: Remove now ill-formed use
1210 of range_value_t on an output_range.
1211 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
1212 Define value_type, pointer and reference member types to void.
1213
12142021-06-03 Patrick Palka <ppalka@redhat.com>
1215
1216 PR libstdc++/100577
1217 * include/std/ranges (_RangeAdaptorClosure): Document
1218 _S_has_simple_call_op mechanism.
1219 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
1220 (__closure_has_simple_call_op): New concept.
1221 (__adaptor_has_simple_extra_args): Likewise.
1222 (_Partial<_Adaptor, _Args...>): New partial specialization.
1223 (_Partial<_Adaptor, _Arg>): Likewise.
1224 (_Pipe<_Lhs, _Rhs>): Likewise.
1225 (views::_All::_S_has_simple_call_op): Define to true.
1226 (views::_Filter::_S_has_simple_extra_args): Likewise.
1227 (views::_Transform::_S_has_simple_extra_args): Likewise.
1228 (views::_Take::_S_has_simple_extra_args): Likewise.
1229 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
1230 (views::_Drop::_S_has_simple_extra_args): Likewise.
1231 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
1232 (views::_Join::_S_has_simple_call_op): Likewise.
1233 (views::_Split): Document why we don't define
1234 _S_has_simple_extra_args to true for this adaptor.
1235 (views::_Common::_S_has_simple_call_op): Define to true.
1236 (views::_Reverse::_S_has_simple_call_op): Likewise.
1237 (views::_Elements::_S_has_simple_call_op): Likewise.
1238 * testsuite/std/ranges/adaptors/100577.cc: New test.
1239
9663c744
GA
12402021-06-02 Jonathan Wakely <jwakely@redhat.com>
1241
1242 PR libstdc++/100863
1243 PR libstdc++/65816
1244 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
1245 Value-initialize subobject.
1246 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
1247 Remove XFAIL.
1248 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
1249 Remove XFAIL.
1250
12512021-06-02 Jonathan Wakely <jwakely@redhat.com>
1252
1253 PR libstdc++/96088
1254 * testsuite/23_containers/unordered_map/96088.cc: Adjust
1255 expected number of allocations.
1256 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1257
12582021-06-02 Jonathan Wakely <jwakely@redhat.com>
1259
1260 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
1261 * doc/xml/manual/status_cxxtr1.xml: Likewise.
1262 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1263 * doc/html/*: Regenerate.
1264
b75978d1
GA
12652021-06-01 Patrick Palka <ppalka@redhat.com>
1266
1267 PR c++/65816
1268 * testsuite/23_containers/deque/allocator/default_init.cc,
1269 testsuite/23_containers/forward_list/allocator/default_init.cc,
1270 testsuite/23_containers/list/allocator/default_init.cc,
1271 testsuite/23_containers/map/allocator/default_init.cc,
1272 testsuite/23_containers/set/allocator/default_init.cc,
1273 testsuite/23_containers/vector/allocator/default_init.cc,
1274 testsuite/23_containers/vector/bool/allocator/default_init.cc:
1275 Remove xfail.
1276
12772021-06-01 Jonathan Wakely <jwakely@redhat.com>
1278
1279 * testsuite/23_containers/unordered_map/96088.cc: Change
1280 effective target to c++17.
1281 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1282
12832021-06-01 Jonathan Wakely <jwakely@redhat.com>
1284
1285 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
1286 isblank for C++11 and later.
1287
12882021-06-01 Jonathan Wakely <jwakely@redhat.com>
1289
1290 PR libstdc++/100833
1291 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
1292 Fix return value for no-op case.
1293 * testsuite/24_iterators/range_operations/advance.cc: Test
1294 return values of three-argument overload.
1295
12962021-06-01 Jonathan Wakely <jwakely@redhat.com>
1297
1298 PR libstdc++/99453
1299 * python/Makefile.am: Use archive name for printer hook if no
1300 dynamic library name is available.
1301 * python/Makefile.in: Regenerate.
1302
e21e9340
GA
13032021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1304
1305 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
1306 Compilers for Linux: Compatibility with GNU Compilers" article.
1307 * doc/html/manual/abi.html: Regenerate.
1308
01c59ef2
GA
13092021-05-26 François Dumont <fdumont@gcc.gnu.org>
1310
1311 * include/debug/formatter.h
1312 (_Error_formatter::_Parameter::_Named): New.
1313 (_Error_formatter::_Parameter::_Type): Inherit latter.
1314 (_Error_formatter::_Parameter::_M_integer): Likewise.
1315 (_Error_formatter::_Parameter::_M_string): Likewise.
1316 * src/c++11/debug.cc: Include <cstring>.
1317 (_Print_func_t): New.
1318 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
1319 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
1320 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
1321 (print_type): Rename in...
1322 (print_type_info): ...this. Use pretty_print.
1323 (print_address, print_integer): New.
1324 (print_named_name, print_iterator_constness, print_iterator_state): New.
1325 (print_iterator_seq_type): New.
1326 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
1327 (print_field): Use latters.
1328 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
1329 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
1330 Change signature to...
1331 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
1332 ...this and adapt. Remove intermediate buffer to render input string.
1333 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
1334
13352021-05-26 Jonathan Wakely <jwakely@redhat.com>
1336
1337 PR libstdc++/100768
1338 * include/bits/ranges_base.h (advance, distance, next, prev):
1339 Replace function templates with function objects.
1340 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1341 Adjust for changes to function objects.
1342 * testsuite/std/ranges/adaptors/elements.cc: Add using
1343 declarations for names from namespace ranges.
1344 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1345 * testsuite/24_iterators/range_operations/100768.cc: New test.
1346
637569df
GA
13472021-05-24 François Dumont <fdumont@gcc.gnu.org>
1348
1349 PR libstdc++/96088
1350 * include/bits/hashtable_policy.h (_Select2nd): New.
1351 (_NodeBuilder<>): New.
1352 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
1353 (_AllocNode<>::operator()): Likewise.
1354 * include/bits/hashtable.h
1355 (_Hashtable<>::__node_builder_t): New.
1356 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
1357 New.
1358 (_Hashtable<>::_S_forward_key): New.
1359 (_Hashtable<>::_M_insert): Use latter.
1360 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
1361 Instantiate node first, compute hash code second.
1362 * testsuite/23_containers/unordered_map/96088.cc: New test.
1363 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
1364 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
1365 * testsuite/23_containers/unordered_set/96088.cc: New test.
1366 * testsuite/util/replacement_memory_operators.h
1367 (counter::_M_increment): New.
1368 (counter::_M_decrement): New.
1369 (counter::reset()): New.
1370
13712021-05-24 Patrick Palka <ppalka@redhat.com>
1372
1373 PR libstdc++/100479
1374 * include/std/ranges (__detail::__non_propagating_cache): Move
1375 definition up to before that of _CachedPosition. Make base
1376 class _Optional_base protected instead of private. Add const
1377 overload for operator*.
1378 (__detail::_CachedPosition): Rewrite the partial specialization
1379 for forward ranges as a derived class of __non_propagating_cache.
1380 Remove the size constraint on the partial specialization for
1381 random access ranges. Add copy/move/copy-assignment/move-assignment
1382 members to the offset partial specialization for random
1383 access ranges that propagate the cached value but additionally
1384 invalidate it in the source object on move.
1385 * testsuite/std/ranges/adaptors/100479.cc: New test.
1386
13872021-05-24 Jonathan Wakely <jwakely@redhat.com>
1388
1389 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
1390 call to ranges::next.
1391 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
1392 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
1393 Likewise.
1394 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
1395 swap_ranges.
1396
2832d51b
GA
13972021-05-21 Patrick Palka <ppalka@redhat.com>
1398
1399 PR libstdc++/100606
1400 * include/std/ranges (drop_while_view::begin): Assert the
1401 precondition added by LWG 3490.
1402
14032021-05-21 Patrick Palka <ppalka@redhat.com>
1404
1405 PR libstdc++/100690
1406 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
1407 Split out this member function from ...
1408 (iota_view::_Sentinel::operator-): ... here, for sake of access
1409 control.
1410 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
1411
ea34e2ed
GA
14122021-05-20 Jonathan Wakely <jwakely@redhat.com>
1413
1414 * include/bits/random.tcc (__representable_as_double)
1415 (__p1_representable_as_double): Add "" to static asserts.
1416
14172021-05-20 Jonathan Wakely <jwakely@redhat.com>
1418
1419 PR libstdc++/100676
1420 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
1421 (__glibcxx_constexpr_assert): ... this.
1422 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
1423 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
1424 or __glibcxx_assert_impl.
1425 (__glibcxx_assert_2): Remove
1426 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
1427 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
1428 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1429 Adjust expected error.
1430 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1431 Likewise.
1432 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1433 Likewise.
1434 Likewise.
1435 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1436 Likewise.
1437 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1438 Likewise.
1439 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1440 Likewise.
1441 * testsuite/23_containers/span/back_neg.cc: Likewise.
1442 * testsuite/23_containers/span/front_neg.cc: Likewise.
1443 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1444
14452021-05-20 Patrick Palka <ppalka@redhat.com>
1446
1447 PR libstdc++/100639
1448 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
1449 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
1450 (reverse_iterator::reference): Likewise, but with iter_reference_t.
1451 (reverse_iterator::value_type): Likewise, but with iter_value_t.
1452 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
1453 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
1454
14552021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
1456
1457 PR libstdc++/100361
1458 * include/std/charconv (to_chars): Hide the overloads for
1459 floating-point types for 16 bit targets.
1460 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1461 * testsuite/20_util/to_chars/double.cc: Run this test only on
1462 size32plus targets.
1463 * testsuite/20_util/to_chars/float.cc: Likewise.
1464 * testsuite/20_util/to_chars/long_double.cc: Likewise.
1465
a8daf9a1
GA
14662021-05-18 Patrick Palka <ppalka@redhat.com>
1467
1468 PR libstdc++/100631
1469 * include/std/ranges (elements_view::_Sentinel::operator-): Use
1470 _M_distance_from in the other operator- overload too.
1471 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
1472
14732021-05-18 Thomas Schwinge <thomas@codesourcery.com>
1474
1475 * testsuite/lib/prune.exp: Add note about 'dg-note'.
1476
14772021-05-18 Patrick Palka <ppalka@redhat.com>
1478
1479 PR libstdc++/100475
1480 * include/std/ranges (__box::__box): Use non-list-initialization
1481 in member initializer list of in-place constructor of the
1482 partial specialization for semiregular types.
1483 (__box::operator->): Use std::__addressof.
1484 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
1485 (test02): New test.
1486 * testsuite/std/ranges/single_view.cc (test04): New test.
1487
14882021-05-18 Patrick Palka <ppalka@redhat.com>
1489
1490 PR libstdc++/100621
1491 * include/std/ranges (reverse_view::_S_needs_cached_begin):
1492 Set to true if the underlying non-common random-access range
1493 doesn't have a sized sentinel.
1494
14952021-05-18 Patrick Palka <ppalka@redhat.com>
1496
1497 PR libstdc++/100631
1498 * include/std/ranges (elements_view::_Iterator): Also befriend
1499 _Sentinel<!_Const>.
1500 (elements_view::_Sentinel::_M_equal): Templatize.
1501 (elements_view::_Sentinel::_M_distance_from): Split out from ...
1502 (elements_view::_Sentinel::operator-): ... here. Depend on
1503 _Base2 instead of _Base in the return type.
1504 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
1505 New tests.
1506
a7ffc1ef
GA
15072021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
1508
1509 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1510 until value change observed.
1511 (__waiter_base::_M_laundered): New member.
1512 (__waiter_base::_M_notify): Check _M_laundered to determine
1513 whether to wake one or all.
1514 (__detail::__atomic_compare): Return true if call to
1515 __builtin_memcmp() == 0.
1516 (__waiter_base::_S_do_spin_v): Adjust predicate.
1517 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1518 test.
1519
15202021-05-17 Jonathan Wakely <jwakely@redhat.com>
1521
1522 PR libstdc++/100630
1523 * include/experimental/bits/fs_path.h (__is_constructible_from):
1524 Test construction from a const lvalue, not an rvalue.
1525 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1526 * testsuite/experimental/filesystem/path/construct/100630.cc:
1527 New test.
1528
15292021-05-17 Antony Polukhin <antoshkka@gmail.com>
1530
1531 PR libstdc++/89728
1532 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
1533 Declare (but do not define) partial specialization.
1534 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
1535
15362021-05-17 Jonathan Wakely <jwakely@redhat.com>
1537
1538 * include/std/thread (jthread::_S_create): Fix static assert
1539 message.
1540 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
1541 * testsuite/30_threads/jthread/jthread.cc: Do not require
1542 pthread effective target.
1543 * testsuite/30_threads/jthread/2.cc: Moved to...
1544 * testsuite/30_threads/jthread/version.cc: ...here.
1545
15462021-05-17 Jonathan Wakely <jwakely@redhat.com>
1547
1548 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
1549 * doc/Makefile.in: Regenerate.
1550 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
1551 value.
1552 * scripts/run_doxygen (print_usage): Always print to stdout and
1553 do not exit.
1554 (fail): New function for exiting on error.
1555 (parse_options): Handle --latex_cmd. Do not treat --help the
1556 same as errors. Simplify handling of required arguments.
1557
0ff3a0f2
GA
15582021-05-12 Jonathan Wakely <jwakely@redhat.com>
1559
1560 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1561 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
1562 warnings. Replace bitwise AND with logical AND in loop
1563 condition.
1564 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1565 Replace bitwise AND with logical AND in loop condition.
1566 * testsuite/util/pstl/test_utils.h: Remove unused parameter
1567 names.
1568
037e3661
GA
15692021-05-11 Patrick Palka <ppalka@redhat.com>
1570
1571 * src/c++17/ryu/LOCAL_PATCHES: Update.
1572 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
1573 Remove declarations for never-defined functions.
1574 * testsuite/20_util/to_chars/4.cc: New test.
1575
15762021-05-11 Jonathan Wakely <jwakely@redhat.com>
1577
1578 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1579 alternative for macro.
1580 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1581 target keyword.
1582 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1583 syntax.
1584
15852021-05-11 Jonathan Wakely <jwakely@redhat.com>
1586
1587 * include/bits/allocator.h (allocator<void>) [C++20]: Add
1588 missing noexcept to constructor. Restore missing POCMA and
1589 is_always_equal_traits.
1590 [C++17]: Make construct and destroy members private and
1591 declare allocator_traits as a friend.
1592 * include/bits/memoryfwd.h (allocator_traits): Declare.
1593 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1594 Add nodiscard attribute. Add static assertion for LWG 3307.
1595 * include/ext/new_allocator.h (new_allocator::allocate): Add
1596 static assertion for LWG 3307.
1597 * testsuite/20_util/allocator/void.cc: Check that converting
1598 constructor is noexcept. Check for propagation traits and
1599 size_type and difference_type. Check that pointer and
1600 const_pointer are gone in C++20.
1601
aa891c56
GA
16022021-05-10 Jonathan Wakely <jwakely@redhat.com>
1603
1604 * include/std/stop_token: Remove TODO comment.
1605
16062021-05-10 Jonathan Wakely <jwakely@redhat.com>
1607
1608 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
1609 Initialize a non-reference deleter from an rvalue, as per LWG
1610 3548.
1611 (__shared_ptr::_UniqCompatible): Add missing constraint.
1612 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
1613 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
1614 constraints.
1615
16162021-05-10 Jonathan Wakely <jwakely@redhat.com>
1617
1618 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
1619 -std=gnu++17 from dg-options directive.
1620 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
1621 Likewise.
1622 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
1623 Likewise.
1624 * testsuite/17_intro/headers/c++2017/operator_names.cc:
1625 Likewise.
1626 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
1627 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
1628 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1629 Likewise.
1630 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1631 * testsuite/18_support/byte/81076.cc: Likewise.
1632 * testsuite/18_support/byte/global_neg.cc: Likewise.
1633 * testsuite/18_support/byte/ops.cc: Likewise.
1634 * testsuite/18_support/byte/requirements.cc: Likewise.
1635 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
1636 * testsuite/18_support/launder/1.cc: Likewise.
1637 * testsuite/18_support/launder/nodiscard.cc: Likewise.
1638 * testsuite/18_support/launder/requirements.cc: Likewise.
1639 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1640 * testsuite/18_support/new_aligned.cc: Likewise.
1641 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1642 Likewise.
1643 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
1644 Likewise.
1645 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
1646 * testsuite/20_util/addressof/requirements/constexpr.cc:
1647 Likewise.
1648 * testsuite/20_util/as_const/1.cc: Likewise.
1649 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
1650 * testsuite/20_util/bind/83427.cc: Likewise.
1651 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1652 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
1653 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
1654 Likewise.
1655 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1656 Likewise.
1657 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
1658 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1659 Likewise.
1660 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
1661 * testsuite/20_util/from_chars/requirements.cc: Likewise.
1662 * testsuite/20_util/function/91456.cc: Likewise.
1663 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1664 * testsuite/20_util/function_objects/83607.cc: Likewise.
1665 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1666 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1667 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
1668 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
1669 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1670 Likewise.
1671 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1672 Likewise.
1673 * testsuite/20_util/has_unique_object_representations/value.cc:
1674 Likewise.
1675 * testsuite/20_util/hash/nullptr.cc: Likewise.
1676 * testsuite/20_util/in_place/requirements.cc: Likewise.
1677 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
1678 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1679 Likewise.
1680 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
1681 Likewise.
1682 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1683 * testsuite/20_util/is_invocable/83395.cc: Likewise.
1684 * testsuite/20_util/is_invocable/91456.cc: Likewise.
1685 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
1686 Likewise.
1687 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
1688 Likewise.
1689 * testsuite/20_util/is_invocable/value.cc: Likewise.
1690 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
1691 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
1692 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
1693 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
1694 Likewise.
1695 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
1696 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
1697 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
1698 Likewise.
1699 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1700 Likewise.
1701 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1702 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
1703 Likewise.
1704 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1705 Likewise.
1706 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
1707 Likewise.
1708 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
1709 Likewise.
1710 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
1711 Likewise.
1712 * testsuite/20_util/is_swappable/value.cc: Likewise.
1713 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
1714 Likewise.
1715 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
1716 Likewise.
1717 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
1718 * testsuite/20_util/logical_traits/83134.cc: Likewise.
1719 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
1720 Likewise.
1721 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
1722 Likewise.
1723 * testsuite/20_util/logical_traits/value.cc: Likewise.
1724 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1725 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
1726 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
1727 Likewise.
1728 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
1729 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
1730 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1731 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1732 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1733 Likewise.
1734 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
1735 Likewise.
1736 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
1737 * testsuite/20_util/to_chars/3.cc: Likewise.
1738 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
1739 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
1740 * testsuite/20_util/to_chars/requirements.cc: Likewise.
1741 * testsuite/20_util/tuple/78939.cc: Likewise.
1742 * testsuite/20_util/tuple/apply/1.cc: Likewise.
1743 * testsuite/20_util/tuple/apply/2.cc: Likewise.
1744 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1745 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1746 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
1747 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
1748 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1749 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1750 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1751 Likewise.
1752 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1753 * testsuite/20_util/void_t/1.cc: Likewise.
1754 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1755 * testsuite/24_iterators/container_access.cc: Likewise.
1756 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
1757 Likewise.
1758 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
1759 Likewise.
1760 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1761 Likewise.
1762 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
1763 Likewise.
1764 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1765 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1766 Likewise.
1767 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1768 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1769 Likewise.
1770 * testsuite/26_numerics/lcm/1.cc: Likewise.
1771 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1772 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1773 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
1774 Likewise.
1775 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
1776 Likewise.
1777 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
1778 Likewise.
1779 * testsuite/27_io/types/4.cc: Likewise.
1780 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1781 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
1782 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1783
17842021-05-10 Jonathan Wakely <jwakely@redhat.com>
1785
1786 * testsuite/20_util/function_objects/searchers.cc: Remove
1787 -std=gnu++17 from dg-options directive.
1788 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
1789 Likewise.
1790 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1791 Likewise.
1792 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
1793 Likewise.
1794 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
1795 Likewise.
1796 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
1797 Likewise.
1798 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1799 Likewise.
1800 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1801 Likewise.
1802 * testsuite/25_algorithms/clamp/1.cc: Likewise.
1803 * testsuite/25_algorithms/clamp/2.cc: Likewise.
1804 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1805 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
1806 Likewise.
1807 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
1808 Likewise.
1809 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
1810 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
1811 Likewise.
1812 * testsuite/25_algorithms/sample/1.cc: Likewise.
1813 * testsuite/25_algorithms/sample/2.cc: Likewise.
1814 * testsuite/25_algorithms/sample/3.cc: Likewise.
1815 * testsuite/25_algorithms/sample/81221.cc: Likewise.
1816 * testsuite/25_algorithms/search/searcher.cc: Likewise.
1817 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
1818 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
1819 * testsuite/26_numerics/reduce/1.cc: Likewise.
1820 * testsuite/26_numerics/reduce/2.cc: Likewise.
1821 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
1822 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
1823 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
1824
18252021-05-10 Jonathan Wakely <jwakely@redhat.com>
1826
1827 * testsuite/23_containers/array/cons/deduction.cc: Remove
1828 -std=gnu++17 from dg-options directive.
1829 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1830 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1831 Likewise.
1832 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
1833 Likewise.
1834 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1835 Likewise.
1836 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1837 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1838 Likewise.
1839 * testsuite/23_containers/forward_list/cons/deduction.cc:
1840 Likewise.
1841 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1842 Likewise.
1843 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1844 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1845 Likewise.
1846 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1847 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1848 * testsuite/23_containers/map/modifiers/insert/83226.cc:
1849 Likewise.
1850 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1851 Likewise.
1852 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
1853 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
1854 Likewise.
1855 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1856 * testsuite/23_containers/multimap/modifiers/extract.cc:
1857 Likewise.
1858 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
1859 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1860 * testsuite/23_containers/multiset/modifiers/extract.cc:
1861 Likewise.
1862 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
1863 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1864 * testsuite/23_containers/queue/deduction.cc: Likewise.
1865 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1866 Likewise.
1867 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1868 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1869 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
1870 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
1871 * testsuite/23_containers/stack/deduction.cc: Likewise.
1872 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1873 Likewise.
1874 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1875 Likewise.
1876 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1877 Likewise.
1878 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1879 Likewise.
1880 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
1881 Likewise.
1882 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1883 Likewise.
1884 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1885 Likewise.
1886 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1887 Likewise.
1888 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1889 Likewise.
1890 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1891 Likewise.
1892 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1893 Likewise.
1894 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1895 Likewise.
1896 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1897 Likewise.
1898 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1899 Likewise.
1900 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
1901 Likewise.
1902 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1903 Likewise.
1904 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1905 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1906 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1907 Likewise.
1908
19092021-05-10 Jonathan Wakely <jwakely@redhat.com>
1910
1911 * testsuite/21_strings/basic_string/79162.cc: Remove
1912 -std=gnu++17 from dg-options directive.
1913 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1914 * testsuite/21_strings/basic_string/cons/char/79162.cc:
1915 Likewise.
1916 * testsuite/21_strings/basic_string/cons/char/86138.cc:
1917 Likewise.
1918 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1919 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
1920 Likewise.
1921 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
1922 Likewise.
1923 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1924 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
1925 Likewise.
1926 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
1927 Likewise.
1928 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1929 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1930 Likewise.
1931 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1932 Likewise.
1933 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1934 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1935 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1936 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1937 Likewise.
1938 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1939 Likewise.
1940 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1941 Likewise.
1942 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1943 Likewise.
1944 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1945 Likewise.
1946 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1947 Likewise.
1948 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1949 Likewise.
1950 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1951 Likewise.
1952 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1953 Likewise.
1954 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1955 Likewise.
1956 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
1957 Likewise.
1958 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1959 Likewise.
1960 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1961 Likewise.
1962 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1963 Likewise.
1964 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1965 Likewise.
1966 * testsuite/21_strings/basic_string/operators/char/5.cc:
1967 Likewise.
1968 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1969 Likewise.
1970 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1971 Likewise.
1972 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1973 Likewise.
1974 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
1975 Likewise.
1976 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
1977 Likewise.
1978 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
1979 Likewise.
1980 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1981 Likewise.
1982 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1983 Likewise.
1984 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1985 Likewise.
1986 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1987 Likewise.
1988 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1989 Likewise.
1990 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1991 Likewise.
1992 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1993 Likewise.
1994 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1995 Likewise.
1996 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1997 Likewise.
1998 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1999 Likewise.
2000 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2001 Likewise.
2002 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2003 Likewise.
2004 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
2005 Likewise.
2006 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2007 Likewise.
2008 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2009 Likewise.
2010 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2011 Likewise.
2012 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2013 Likewise.
2014 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
2015 Likewise.
2016 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2017 Likewise.
2018 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2019 Likewise.
2020 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2021 Likewise.
2022 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2023 Likewise.
2024 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2025 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
2026 Likewise.
2027 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
2028 Likewise.
2029 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
2030 Likewise.
2031 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
2032 Likewise.
2033 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2034 Likewise.
2035 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2036 Likewise.
2037 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2038 Likewise.
2039 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2040 Likewise.
2041 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
2042 Likewise.
2043 * testsuite/21_strings/basic_string_view/literals/types.cc:
2044 Likewise.
2045 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
2046 Likewise.
2047 * testsuite/21_strings/basic_string_view/literals/values.cc:
2048 Likewise.
2049 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2050 Likewise.
2051 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2052 Likewise.
2053 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2054 Likewise.
2055 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2056 Likewise.
2057 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2058 Likewise.
2059 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2060 Likewise.
2061 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2062 Likewise.
2063 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2064 Likewise.
2065 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
2066 Likewise.
2067 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
2068 Likewise.
2069 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
2070 Likewise.
2071 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2072 Likewise.
2073 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2074 Likewise.
2075 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
2076 Likewise.
2077 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2078 Likewise.
2079 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
2080 Likewise.
2081 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2082 Likewise.
2083 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
2084 Likewise.
2085 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2086 Likewise.
2087 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2088 Likewise.
2089 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2090 Likewise.
2091 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2092 Likewise.
2093 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2094 Likewise.
2095 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2096 Likewise.
2097 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
2098 Likewise.
2099 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2100 Likewise.
2101 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2102 Likewise.
2103 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2104 Likewise.
2105 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2106 Likewise.
2107 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2108 Likewise.
2109 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2110 Likewise.
2111 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2112 Likewise.
2113 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
2114 Likewise.
2115 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2116 Likewise.
2117 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2118 Likewise.
2119 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2120 Likewise.
2121 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2122 Likewise.
2123 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2124 Likewise.
2125 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
2126 Likewise.
2127 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2128 Likewise.
2129 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
2130 Likewise.
2131 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
2132 Likewise.
2133 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
2134 Likewise.
2135 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2136 Likewise.
2137 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
2138 Likewise.
2139 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2140 Likewise.
2141 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2142 Likewise.
2143 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2144 Likewise.
2145 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2146 Likewise.
2147 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2148 Likewise.
2149 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2150 Likewise.
2151 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2152 Likewise.
2153 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2154 Likewise.
2155 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
2156 Likewise.
2157 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2158 Likewise.
2159 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2160 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2161 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
2162 Likewise.
2163 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2164
21652021-05-10 Jonathan Wakely <jwakely@redhat.com>
2166
2167 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
2168 from dg-options directive.
2169 * testsuite/20_util/memory_resource/2.cc: Likewise.
2170 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
2171 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
2172 Likewise.
2173 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2174 Likewise.
2175 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
2176 Likewise.
2177 * testsuite/20_util/monotonic_buffer_resource/release.cc:
2178 Likewise.
2179 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2180 Likewise.
2181 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
2182 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
2183 Likewise.
2184 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
2185 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
2186 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2187 Likewise.
2188 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2189 Likewise.
2190 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2191 Likewise.
2192 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2193 Likewise.
2194 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2195 Likewise.
2196 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2197 Likewise.
2198 * testsuite/20_util/synchronized_pool_resource/options.cc:
2199 Likewise.
2200 * testsuite/20_util/synchronized_pool_resource/release.cc:
2201 Likewise.
2202 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2203 Likewise.
2204 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
2205 Likewise.
2206 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2207 Likewise.
2208 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
2209 Likewise.
2210 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
2211 Likewise.
2212 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
2213 Likewise.
2214 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
2215 Likewise.
2216 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
2217 Likewise.
2218 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
2219 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
2220 Likewise.
2221 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
2222 Likewise.
2223 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
2224 Likewise.
2225 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
2226 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
2227 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
2228 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
2229 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
2230 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
2231 Likewise.
2232 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
2233 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
2234 Likewise.
2235 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
2236 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
2237 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
2238 Likewise.
2239 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
2240 Likewise.
2241 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
2242 Likewise.
2243 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
2244 Likewise.
2245 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
2246 Likewise.
2247 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
2248 Likewise.
2249 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
2250 Likewise.
2251 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
2252 Likewise.
2253 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
2254 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
2255 Likewise.
2256 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
2257
22582021-05-10 Jonathan Wakely <jwakely@redhat.com>
2259
2260 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
2261 dg-options.
2262 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
2263 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
2264 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
2265 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
2266 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
2267 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
2268 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
2269 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
2270 Likewise.
2271 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
2272 Likewise.
2273 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
2274 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
2275 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
2276 Likewise.
2277 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
2278 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
2279 Likewise.
2280 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
2281 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
2282 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
2283 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
2284
22852021-05-10 Jonathan Wakely <jwakely@redhat.com>
2286
2287 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
2288 dg-options directive.
2289 * testsuite/20_util/any/assign/2.cc: Likewise.
2290 * testsuite/20_util/any/assign/emplace.cc: Likewise.
2291 * testsuite/20_util/any/assign/exception.cc: Likewise.
2292 * testsuite/20_util/any/assign/self.cc: Likewise.
2293 * testsuite/20_util/any/cons/1.cc: Likewise.
2294 * testsuite/20_util/any/cons/2.cc: Likewise.
2295 * testsuite/20_util/any/cons/90415.cc: Likewise.
2296 * testsuite/20_util/any/cons/92156.cc: Likewise.
2297 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2298 * testsuite/20_util/any/cons/explicit.cc: Likewise.
2299 * testsuite/20_util/any/cons/in_place.cc: Likewise.
2300 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2301 * testsuite/20_util/any/make_any.cc: Likewise.
2302 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2303 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2304 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2305 * testsuite/20_util/any/misc/swap.cc: Likewise.
2306 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2307 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
2308 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
2309 * testsuite/20_util/any/observers/type.cc: Likewise.
2310 * testsuite/20_util/any/requirements.cc: Likewise.
2311 * testsuite/20_util/any/typedefs.cc: Likewise.
2312 * testsuite/20_util/optional/77288.cc: Likewise.
2313 * testsuite/20_util/optional/84601.cc: Likewise.
2314 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2315 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2316 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2317 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2318 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2319 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2320 * testsuite/20_util/optional/assignment/7.cc: Likewise.
2321 * testsuite/20_util/optional/assignment/8.cc: Likewise.
2322 * testsuite/20_util/optional/assignment/9.cc: Likewise.
2323 * testsuite/20_util/optional/bad_access.cc: Likewise.
2324 * testsuite/20_util/optional/cons/77727.cc: Likewise.
2325 * testsuite/20_util/optional/cons/85642.cc: Likewise.
2326 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2327 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
2328 * testsuite/20_util/optional/cons/default.cc: Likewise.
2329 * testsuite/20_util/optional/cons/move.cc: Likewise.
2330 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
2331 * testsuite/20_util/optional/cons/value.cc: Likewise.
2332 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2333 * testsuite/20_util/optional/constexpr/cons/default.cc:
2334 Likewise.
2335 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2336 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2337 * testsuite/20_util/optional/constexpr/make_optional.cc:
2338 Likewise.
2339 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2340 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2341 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2342 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2343 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2344 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2345 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2346 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2347 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2348 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2349 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2350 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2351 * testsuite/20_util/optional/hash.cc: Likewise.
2352 * testsuite/20_util/optional/in_place.cc: Likewise.
2353 * testsuite/20_util/optional/make_optional.cc: Likewise.
2354 * testsuite/20_util/optional/nullopt.cc: Likewise.
2355 * testsuite/20_util/optional/observers/1.cc: Likewise.
2356 * testsuite/20_util/optional/observers/2.cc: Likewise.
2357 * testsuite/20_util/optional/observers/3.cc: Likewise.
2358 * testsuite/20_util/optional/observers/4.cc: Likewise.
2359 * testsuite/20_util/optional/observers/5.cc: Likewise.
2360 * testsuite/20_util/optional/observers/6.cc: Likewise.
2361 * testsuite/20_util/optional/relops/1.cc: Likewise.
2362 * testsuite/20_util/optional/relops/2.cc: Likewise.
2363 * testsuite/20_util/optional/relops/3.cc: Likewise.
2364 * testsuite/20_util/optional/relops/4.cc: Likewise.
2365 * testsuite/20_util/optional/relops/5.cc: Likewise.
2366 * testsuite/20_util/optional/relops/6.cc: Likewise.
2367 * testsuite/20_util/optional/relops/7.cc: Likewise.
2368 * testsuite/20_util/optional/requirements.cc: Likewise.
2369 * testsuite/20_util/optional/swap/1.cc: Likewise.
2370 * testsuite/20_util/optional/swap/2.cc: Likewise.
2371 * testsuite/20_util/optional/typedefs.cc: Likewise.
2372 * testsuite/20_util/variant/80165.cc: Likewise.
2373 * testsuite/20_util/variant/85183.cc: Likewise.
2374 * testsuite/20_util/variant/86874.cc: Likewise.
2375 * testsuite/20_util/variant/87431.cc: Likewise.
2376 * testsuite/20_util/variant/87619.cc: Likewise.
2377 * testsuite/20_util/variant/91807.cc: Likewise.
2378 * testsuite/20_util/variant/any.cc: Likewise.
2379 * testsuite/20_util/variant/compile.cc: Likewise.
2380 * testsuite/20_util/variant/deduction.cc: Likewise.
2381 * testsuite/20_util/variant/exception_safety.cc: Likewise.
2382 * testsuite/20_util/variant/hash.cc: Likewise.
2383 * testsuite/20_util/variant/index_type.cc: Likewise.
2384 * testsuite/20_util/variant/relops/89851.cc: Likewise.
2385 * testsuite/20_util/variant/relops/90008.cc: Likewise.
2386 * testsuite/20_util/variant/run.cc: Likewise.
2387 * testsuite/20_util/variant/visit.cc: Likewise.
2388
23892021-05-10 Jonathan Wakely <jwakely@redhat.com>
2390
2391 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
2392 -std=gnu++17 from dg-options directive.
2393 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
2394 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
2395 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
2396 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
2397 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
2398 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
2399 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
2400 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
2401 Likewise.
2402 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
2403 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
2404 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
2405 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
2406 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
2407 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2408 Likewise.
2409 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
2410 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
2411 Likewise.
2412 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2413 Likewise.
2414 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
2415 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
2416 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2417 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
2418 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2419 * testsuite/27_io/filesystem/operations/create_directories.cc:
2420 Likewise.
2421 * testsuite/27_io/filesystem/operations/create_directory.cc:
2422 Likewise.
2423 * testsuite/27_io/filesystem/operations/create_symlink.cc:
2424 Likewise.
2425 * testsuite/27_io/filesystem/operations/current_path.cc:
2426 Likewise.
2427 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
2428 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2429 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2430 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2431 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2432 Likewise.
2433 * testsuite/27_io/filesystem/operations/permissions.cc:
2434 Likewise.
2435 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2436 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2437 Likewise.
2438 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2439 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2440 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2441 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2442 * testsuite/27_io/filesystem/operations/resize_file.cc:
2443 Likewise.
2444 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
2445 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2446 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2447 Likewise.
2448 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2449 Likewise.
2450 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2451 Likewise.
2452 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2453 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2454 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2455 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2456 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2457 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2458 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2459 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2460 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2461 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2462 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2463 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2464 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2465 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2466 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2467 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2468 * testsuite/27_io/filesystem/path/construct/default.cc:
2469 Likewise.
2470 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2471 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2472 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2473 * testsuite/27_io/filesystem/path/construct/string_view.cc:
2474 Likewise.
2475 * testsuite/27_io/filesystem/path/decompose/extension.cc:
2476 Likewise.
2477 * testsuite/27_io/filesystem/path/decompose/filename.cc:
2478 Likewise.
2479 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2480 Likewise.
2481 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2482 Likewise.
2483 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2484 Likewise.
2485 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
2486 Likewise.
2487 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
2488 Likewise.
2489 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2490 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2491 Likewise.
2492 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2493 * testsuite/27_io/filesystem/path/generation/normal.cc:
2494 Likewise.
2495 * testsuite/27_io/filesystem/path/generation/normal2.cc:
2496 Likewise.
2497 * testsuite/27_io/filesystem/path/generation/proximate.cc:
2498 Likewise.
2499 * testsuite/27_io/filesystem/path/generation/relative.cc:
2500 Likewise.
2501 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2502 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
2503 Likewise.
2504 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2505 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2506 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2507 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2508 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2509 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2510 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2511 Likewise.
2512 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2513 Likewise.
2514 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2515 Likewise.
2516 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2517 Likewise.
2518 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2519 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2520 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2521 Likewise.
2522 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2523 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2524 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2525 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2526 Likewise.
2527 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2528 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
2529 * testsuite/27_io/filesystem/path/query/has_extension.cc:
2530 Likewise.
2531 * testsuite/27_io/filesystem/path/query/has_filename.cc:
2532 Likewise.
2533 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2534 Likewise.
2535 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2536 Likewise.
2537 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2538 Likewise.
2539 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
2540 Likewise.
2541 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
2542 Likewise.
2543 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2544 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
2545 Likewise.
2546 * testsuite/27_io/filesystem/path/query/is_relative.cc:
2547 Likewise.
2548 * testsuite/experimental/filesystem/path/construct/string_view.cc:
2549 Likewise.
2550
25512021-05-10 Jonathan Wakely <jwakely@redhat.com>
2552
2553 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2554 Remove -std=gnu++17 from dg-options.
2555 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2556 Likewise.
2557 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2558 Likewise.
2559 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2560 Likewise.
2561 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2562 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2563 Likewise.
2564 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2565 Likewise.
2566 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2567 Likewise.
2568 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2569 Likewise.
2570 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2571 Likewise.
2572 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2573 Likewise.
2574 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2575 Likewise.
2576 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2577 Likewise.
2578 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2579 Likewise.
2580 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2581 Likewise.
2582 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2583 Likewise.
2584 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2585 Likewise.
2586 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2587 Likewise.
2588 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2589 Likewise.
2590 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2591 Likewise.
2592 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
2593 Likewise.
2594 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
2595 Likewise.
2596 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
2597 Likewise.
2598 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
2599 Likewise.
2600 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
2601 Likewise.
2602 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
2603 Likewise.
2604 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
2605 Likewise.
2606 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
2607 Likewise.
2608 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
2609 Likewise.
2610 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2611 Likewise.
2612 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
2613 Likewise.
2614 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
2615 Likewise.
2616 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
2617 Likewise.
2618 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2619 Likewise.
2620 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
2621 Likewise.
2622 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
2623 Likewise.
2624 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
2625 Likewise.
2626 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
2627 Likewise.
2628 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2629 Likewise.
2630 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2631 Likewise.
2632 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
2633 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
2634 Likewise.
2635 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2636 Likewise.
2637 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2638 Likewise.
2639 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
2640 Likewise.
2641 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
2642 Likewise.
2643 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
2644 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
2645 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
2646 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
2647 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2648 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
2649 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
2650 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
2651 Likewise.
2652 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
2653 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
2654 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
2655 Likewise.
2656 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
2657 Likewise.
2658
26592021-05-10 Jonathan Wakely <jwakely@redhat.com>
2660
2661 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
2662 for additional errors in C++20.
2663 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2664 Likewise.
2665 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2666 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2667
26682021-05-10 Jonathan Wakely <jwakely@redhat.com>
2669
2670 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
2671 clash with std::any.
2672
62d87a32
GA
26732021-05-07 Jonathan Wakely <jwakely@redhat.com>
2674
2675 * include/std/istream (__rvalue_stream_extraction_t): Replace
2676 use of __rval_streamable.
2677 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
2678 (__rval_streamable): Remove.
2679 (_Require_derived_from_ios_base, __derived_from_ios_base): New
2680 helper for checking constraints.
2681 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
2682 reference to the wrong subclause of the standard.
2683 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2684 Likewise.
2685 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2686 Likewise.
2687 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2688 Likewise.
2689 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
2690 New test.
2691 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
2692 errors.
2693
cfe82a0c
GA
26942021-05-06 Jonathan Wakely <jwakely@redhat.com>
2695
2696 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2697 Improve static_assert messages.
2698 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
2699 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
2700
27012021-05-06 Patrick Palka <ppalka@redhat.com>
2702
2703 * include/std/ranges (filter_view::_Iterator::base): Make the
2704 const& overload unconstrained and return a const reference as
2705 per LWG 3533. Make unconditionally noexcept.
2706 (transform_view::_Iterator::base): Likewise.
2707 (elements_view::_Iterator::base): Likewise.
2708
27092021-05-06 Patrick Palka <ppalka@redhat.com>
2710
2711 * include/bits/stl_iterator.h (move_iterator::base): Make the
2712 const& overload unconstrained and return a const reference as
2713 per LWG 3391. Make unconditionally noexcept.
2714 (counted_iterator::base): Likewise.
2715 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
2716 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
2717 has_member_base concept to decay-copy the result of base().
2718
27192021-05-06 Jonathan Wakely <jwakely@redhat.com>
2720
2721 * include/std/type_traits (remove_cvref_t): Define in terms of
2722 remove_cvref.
2723 * testsuite/20_util/remove_cvref/value.cc: Check alias.
2724
27252021-05-06 Jonathan Wakely <jwakely@redhat.com>
2726
2727 Revert:
2728 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2729
2730 * include/std/charconv (__from_chars_alnum): Pass unsigned
2731 char to std::isdigit.
2732
44948011
GA
27332021-05-05 Patrick Palka <ppalka@redhat.com>
2734
2735 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
2736 Remove constraints on this partial specialization.
2737 * include/std/ranges (enable_borrowed_range<iota_view>):
2738 Likewise.
2739
27402021-05-05 Patrick Palka <ppalka@redhat.com>
2741
2742 * include/std/ranges (transform_view::_Iterator::iter_swap):
2743 Remove as per LWG 3520.
2744 (join_view::_Iterator::iter_swap): Add indirectly_swappable
2745 constraint as per LWG 3517.
2746
27472021-05-05 Jonathan Wakely <jwakely@redhat.com>
2748
2749 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
2750 test macro.
2751 * testsuite/20_util/function_objects/invoke/version.cc: New test.
2752
27532021-05-05 Jonathan Wakely <jwakely@redhat.com>
2754
2755 * include/std/charconv (__from_chars_alnum): Pass unsigned
2756 char to std::isdigit.
2757
27582021-05-05 Corentin Gay <gay@adacore.com>
2759
2760 * acinclude.m4: Add VxWorks-specific case for the
2761 configuration of ctypes.
2762 * configure: Regenerate.
2763 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
2764 version.
2765 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
2766 * config/os/vxworks/ctype_configure_char.cc: Likewise.
2767 * config/os/vxworks/ctype_inline.h: Likewise.
2768 * testsuite/28_regex/traits/char/isctype.cc: Defines
2769 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
2770 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
2771
99e8df7a
GA
27722021-05-04 Jonathan Wakely <jwakely@redhat.com>
2773
2774 * include/std/future (promise::set_value): Check for existence
2775 of shared state before dereferncing it.
2776 (promise::set_exception, promise::set_value_at_thread_exit)
2777 (promise::set_exception_at_thread_exit): Likewise.
2778 (promise<R&>::set_value, promise<R&>::set_exception)
2779 (promise<R&>::set_value_at_thread_exit)
2780 (promise<R&>::set_exception_at_thread_exit): Likewise.
2781 (promise<void>::set_value, promise<void>::set_exception)
2782 (promise<void>::set_value_at_thread_exit)
2783 (promise<void>::set_exception_at_thread_exit): Likewise.
2784 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
2785 Remove unused variable.
2786
27872021-05-04 Jonathan Wakely <jwakely@redhat.com>
2788
2789 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
2790 Do not do arithmetic on null pointer.
2791
27922021-05-04 Jonathan Wakely <jwakely@redhat.com>
2793
2794 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
2795 (find_key_pointer(key_const_reference, false_type))
2796 (find_key_pointer(key_const_reference, true_type)): Do not
2797 dereference null pointer.
2798
27992021-05-04 Jonathan Wakely <jwakely@redhat.com>
2800
2801 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
2802 overflow.
2803 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
2804 non-zero value to null pointer.
2805 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
2806 Use past-the-end iterator for result.
2807 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
2808 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2809
28102021-05-04 Jonathan Wakely <jwakely@redhat.com>
2811
2812 PR libstdc++/100384
2813 * include/std/variant (__get_t): New alias template yielding the
2814 return type of std::get<N> on a variant.
2815 (__visit_result_t): New alias template yielding the result of
2816 std::visit.
2817 (__same_types): Move into namespace __detail::__variant.
2818 (__check_visitor_results): Likewise. Use __invoke_result_t and
2819 __get_t.
2820 (__check_visitor_result): Remove.
2821 (visit): Use __visit_result_t for return type.
2822 * testsuite/20_util/variant/100384.cc: New test.
2823
28242021-05-04 Jonathan Wakely <jwakely@redhat.com>
2825
2826 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
2827 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
2828 * config.h.in: Regenerate.
2829 * configure: Regenerate.
2830 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
2831 * include/bits/random.h (_Select_uint_least_t<s, 1>):
2832 Use __SIZEOF_INT128__ to decide whether to use __int128.
2833 * include/std/charconv (__to_chars_unsigned_type): Likewise.
2834
54b20ee0
GA
28352021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
2836
2837 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
2838 * doc/html/manual/facets.html: Regenerate.
2839
9326049e
GA
28402021-04-30 Patrick Palka <ppalka@redhat.com>
2841
2842 * include/std/ranges (__detail::__non_propating_cache): Define
2843 as per P2328.
2844 (join_view): Remove constraints on the value and reference types
2845 of the wrapped iterator type as per P2328.
2846 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
2847 (join_view::_Iterator::operator++): Likewise.
2848 (join_view::_M_inner): Use __non_propating_cache as per P2328.
2849 Remove now-redundant use of __maybe_present_t.
2850 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
2851 (test10): New test.
2852
28532021-04-30 Jonathan Wakely <jwakely@redhat.com>
2854
2855 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
2856 Only define for C++17 and later.
2857 * include/std/version (__cpp_lib_semaphore): Fix condition
2858 to match the one in <semaphore>.
2859
28602021-04-30 Jonathan Wakely <jwakely@redhat.com>
2861
2862 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
2863 * config.h.in: Regenerate.
2864 * configure: Regenerate.
2865 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
2866 * include/bits/postypes.h: Remove include of <stdint.h> and
2867 definition/undefinition of the __STDC_LIMIT_MACROS and
2868 __STDC_CONSTANT_MACROS macros.
2869 (streamoff): Use __INT64_TYPE__ if defined.
2870
28712021-04-30 Patrick Palka <ppalka@redhat.com>
2872
2873 * include/std/ranges (split_view::_InnerIter::operator++):
2874 Depend on _Base instead of _Vp directly, as per LWG 3532.
2875
28762021-04-30 Patrick Palka <ppalka@redhat.com>
2877
2878 * include/bits/ranges_util.h (subrange::subrange): Avoid
2879 list-initialization in delegating constructor.
2880 * include/std/ranges (single_view): Replace implicit guide
2881 with explicit deduction guide that decays its argument.
2882 (_Single::operator()): Avoid CTAD when constructing the
2883 single_view object.
2884 (_Iota::operator()): Avoid list-initialization.
2885 (__detail::__can_filter_view, _Filter::operator()): Likewise.
2886 (__detail::__can_transform_view, _Transform::operator()): Likewise.
2887 (take_view::begin): Likewise.
2888 (__detail::__can_take_view, _Take::operator()): Likewise.
2889 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
2890 (__detail::__can_drop_view, _Drop::operator()): Likewise.
2891 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
2892 (split_view::split_view): Use views::single when initializing
2893 _M_pattern.
2894 (__detail::__can_split_view, _Split::operator()): Avoid
2895 list-initialization.
2896 (_Counted::operator()): Likewise.
2897 * testsuite/std/ranges/p2367.cc: New test.
2898
28992021-04-30 Jonathan Wakely <jwakely@redhat.com>
2900
2901 PR libstdc++/60497
2902 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
2903 std::addressof.
2904 * include/bits/basic_string.tcc (basic_string::swap)
2905 (basic_string::assign): Likewise.
2906 * include/bits/deque.tcc (deque::operator=(const deque&)):
2907 Likewise.
2908 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
2909 Likewise.
2910 * include/bits/vector.tcc (vector::operator=(const vector&)):
2911 Likewise.
2912
29132021-04-30 Jonathan Wakely <jwakely@redhat.com>
2914
2915 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
2916 per LWG 1203.
2917 * include/std/ostream (operator<<(Ostream&&, const x&)):
2918 Likewise.
2919 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
2920 Adjust dg-error pattern.
2921 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
2922 Likewise.
2923 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
2924 is_extractable trait to replace std::__is_extractable. Make it
2925 work with rvalue streams as well as lvalues, to replace f() and
2926 g() helper functions.
2927 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2928 Likewise.
2929 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2930 Define is_insertable trait to replace std::__is_insertable. Make
2931 it work with rvalue streams as well as lvalues, to replace f()
2932 and g() helper functions.
2933 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2934 Likewise.
2935 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
2936 errors from new constraints.
2937 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
2938 which are no longer expected to compile.
2939 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
2940 Verify LWG 1203 changes.
2941
29422021-04-30 Jonathan Wakely <jwakely@redhat.com>
2943
2944 PR libstdc++/100285
2945 * include/experimental/socket (__basic_socket_impl::set_option)
2946 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
2947 Just set error code.
2948 * testsuite/experimental/net/socket/socket_base.cc: CHeck
2949 for <sys/socket.h> not <socket.h>.
2950
29512021-04-30 Jonathan Wakely <jwakely@redhat.com>
2952
2953 PR libstdc++/100180
2954 PR libstdc++/100286
2955 PR libstdc++/100351
2956 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
2957 Use new effective-target keyword.
2958 * testsuite/experimental/net/internet/address/v4/cons.cc:
2959 Likewise.
2960 * testsuite/experimental/net/internet/address/v4/creation.cc:
2961 Likewise.
2962 * testsuite/experimental/net/internet/address/v4/members.cc:
2963 Likewise.
2964 * testsuite/experimental/net/internet/address/v6/members.cc:
2965 Likewise.
2966 * testsuite/experimental/net/internet/resolver/base.cc:
2967 Likewise.
2968 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2969 Likewise.
2970 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2971 Likewise.
2972 * testsuite/experimental/net/internet/socket/opt.cc:
2973 Likewise.
2974 * testsuite/experimental/net/internet/tcp.cc:
2975 Likewise.
2976 * testsuite/experimental/net/internet/udp.cc:
2977 Likewise.
2978 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
2979 New proc to check net_ts_ip et.
2980
e4ff4ffb
GA
29812021-04-28 Jonathan Wakely <jwakely@redhat.com>
2982
2983 PR libstdc++/97930
2984 * testsuite/20_util/pair/requirements/structural.cc: New test.
2985
29862021-04-28 Jonathan Wakely <jwakely@redhat.com>
2987
2988 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
2989 new definitions for constructors and assignment operators using
2990 concepts for constraints.
2991 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
2992 later.
2993 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
2994 expected error messages to also match C++20 errors.
2995
29962021-04-28 Jonathan Wakely <jwakely@redhat.com>
2997
2998 PR libstdc++/99957
2999 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
3000 Combine and replace with ...
3001 (_PCC::_DeprConsPair): New SFINAE helper function.
3002 (pair): Merge preprocessor blocks so that all C++03 members
3003 are defined together at the end.
3004 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
3005 Replace _T1 and _T2 parameters with __null_ptr_constant and
3006 adjust constraints.
3007 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
3008 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
3009 * testsuite/20_util/pair/cons/99957.cc: New test.
3010
30112021-04-28 Jonathan Wakely <jwakely@redhat.com>
3012
3013 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
3014 * include/std/version (__cpp_lib_constexpr_string): Define.
3015 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3016 Check for __cpp_lib_constexpr_string.
3017 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
3018 Likewise.
3019 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
3020
30212021-04-28 Jonathan Wakely <jwakely@redhat.com>
3022
3023 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
3024 dealing with errors. Use '@' to prevent shell command being
3025 echoed.
3026 * doc/Makefile.in: Regenerate.
3027
30282021-04-28 Jonathan Wakely <jwakely@redhat.com>
3029
3030 PR libstdc++/100298
3031 * include/bits/std_thread.h (thread::hardware_concurrency): Add
3032 missing noexcept to inline definition for non-gthreads targets.
3033
30342021-04-28 Patrick Palka <ppalka@redhat.com>
3035
3036 PR libstdc++/100187
3037 PR libstdc++/100237
3038 PR libstdc++/100249
3039 PR libstdc++/100287
3040 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
3041 the __value_comp lambda an explicit bool return type.
3042 (__is_permutation_fn::operator()): Give the __proj_scan local
3043 variable auto&& return type. Give the __comp_scan lambda an
3044 explicit bool return type.
3045 (__remove_fn::operator()): Give the __pred lambda an explicit
3046 bool return type.
3047 (__partition_fn::operator()): Don't std::move __first twice
3048 when returning an empty subrange.
3049 (__min_fn::operator()): Don't std::move __comp.
3050 (__max_fn::operator()): Likewise.
3051 (__minmax_fn::operator()): Likewise.
3052
8f54dd61
GA
30532021-04-27 Patrick Palka <ppalka@redhat.com>
3054
3055 PR libstdc++/100290
3056 * include/std/ranges (join_view::_Iterator::operator++): Correct
3057 the return type of the lambda to avoid returning a copy of
3058 _M_parent->_M_inner.
3059 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
3060
30612021-04-27 Jakub Jelinek <jakub@redhat.com>
3062
3063 Revert:
3064 2021-04-22 Jakub Jelinek <jakub@redhat.com>
3065
3066 PR target/100182
3067 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3068 ia32.
3069 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3070 ia32.
3071
30722021-04-27 Jonathan Wakely <jwakely@redhat.com>
3073
3074 * include/experimental/internet (address_v6::bytes_type): Adjust
3075 formatting.
3076 (basic_endpoint): Define _M_is_v6() to put all checks for
3077 AF_INET6 in one place.
3078 (basic_endpoint::resize): Simplify.
3079 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
3080 (operator!=(const tcp&, const tcp&)): Likewise.
3081 (operator==(const udp&, const udp&)): Likewise.
3082 (operator!=(const udp&, const udp&)): Likewise.
3083 * testsuite/experimental/net/internet/tcp.cc: New test.
3084 * testsuite/experimental/net/internet/udp.cc: New test.
3085
30862021-04-27 Jonathan Wakely <jwakely@redhat.com>
3087
3088 PR libstdc++/100286
3089 * include/experimental/internet (resolver_errc, resolver_category())
3090 (make_error_code, make_error_condition): Define unconditionally,
3091 only make enumerators and use of gai_strerror depend on the
3092 availability of <netdb.h>.
3093 (address_v4::to_string): Use correct constant for string length.
3094 (address_v4::to_string, address_v6::to_string): Define
3095 unconditionally, throw if unsupported.
3096 (make_address_v4, make_address_v6): Define unconditionally.
3097 Return an error if unsupported.
3098 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
3099 conditionally,
3100 * testsuite/experimental/net/internet/socket/opt.cc: Check for
3101 <netinet/in.h> and <netinet/tcp.h> before using types from
3102 namespace net::ip.
3103
31042021-04-27 Jonathan Wakely <jwakely@redhat.com>
3105
3106 PR libstdc++/100285
3107 * include/experimental/internet (resolver_base::flags):
3108 Define overloaded operators as hidden friends.
3109 * include/experimental/socket (socket_base::message_flags):
3110 Likewise.
3111
c0fa3f2f
GA
31122021-04-26 Jonathan Wakely <jwakely@redhat.com>
3113
3114 * include/experimental/internet (tcp::no_delay, v6_only)
3115 (unicast::hops, multicast::hops, multicast::enable_loopback):
3116 Change access of base class and static data members. Add
3117 using-declaration for __socket_crtp::operator=(_Tp).
3118 (multicast::__mcastopt): New type.
3119 (multicast::join_group, multicast::leave_group): Derive from
3120 __mcastopt for common implementation.
3121 * include/experimental/socket: Add comment.
3122 * testsuite/experimental/net/internet/socket/opt.cc: New test.
3123 * testsuite/experimental/net/socket/socket_base.cc: Check for
3124 protected constructor/destructor of socket_base. Check for
3125 explicit constructors of socket option classes.
3126
31272021-04-26 Jonathan Wakely <jwakely@redhat.com>
3128
3129 * include/experimental/bits/net.h (__socket_base): Add
3130 bool template parameter to allow BooleanSocketOption and
3131 IntegerSocketOption to have different __socket_base<int>
3132 base classes.
3133 (__socket_base<bool>): Adjust base class.
3134 (__socket_base<int>): Add partial specialization.
3135 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
3136 * include/experimental/socket (socket_base::broadcast)
3137 (socket_base::debug, socket_base::do_not_route)
3138 (socket_base::keep_alive, socket_base::linger)
3139 (socket_base::out_of_band_inline)
3140 (socket_base::receive_buffer_size)
3141 (socket_base::receive_low_watermark)
3142 (socket_base::reuse_address, socket_base::send_buffer_size)
3143 (socket_base::send_low_watermark): Add using-declaration for
3144 __socket_crtp::operator=(_Tp).
3145 * testsuite/experimental/net/socket/socket_base.cc: Check
3146 properties of socket option types.
3147
31482021-04-26 Jonathan Wakely <jwakely@redhat.com>
3149
3150 * include/experimental/internet (resolver_base::flags): Remove
3151 enumerators. Initialize constants directly with desired values.
3152 Make all operators constexpr and noexcept.
3153 * testsuite/experimental/net/internet/resolver/base.cc: Use
3154 __gnu_test::test_bitmask_values for bitmask type. Check
3155 construction and destruction is protected.
3156
31572021-04-26 Jonathan Wakely <jwakely@redhat.com>
3158
3159 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
3160
31612021-04-26 Jonathan Wakely <jwakely@redhat.com>
3162
3163 PR libstdc++/100259
3164 * include/experimental/internet (net::ip::make_error_code)
3165 (net::ip::make_error_condition, net::ip::make_network_v4)
3166 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
3167
502ef97c
GA
31682021-04-24 David Edelsohn <dje.gcc@gmail.com>
3169
3170 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
3171 (add_options_for_libatomic): Use atomic_link_flags.
3172
05ec629f
GA
31732021-04-23 Jonathan Wakely <jwakely@redhat.com>
3174
3175 PR libstdc++/100180
3176 * include/experimental/io_context (io_context): Define
3177 dummy_pollfd type so that most member functions still compile
3178 without <poll.h> and struct pollfd.
3179
31802021-04-23 Jonathan Wakely <jwakely@redhat.com>
3181
3182 * include/experimental/io_context (io_context::async_wait): Add
3183 comment.
3184 * include/experimental/socket (basic_socket::async_connect):
3185 Cast wait_type constant to int.
3186 (basic_datagram_socket::async_receive): Likewise.
3187 (basic_datagram_socket::async_receive_from): Likewise.
3188 (basic_datagram_socket::async_send): Likewise.
3189 (basic_datagram_socket::async_send_to): Likewise.
3190 (basic_stream_socket::async_receive): Likewise.
3191 (basic_stream_socket::async_send): Likewise. Use io_context
3192 parameter directly, instead of via an executor.
3193 (basic_socket_acceptor::async_accept): Likewise.
3194
31952021-04-23 Jonathan Wakely <jwakely@redhat.com>
3196
3197 * include/experimental/socket (socket_base::shutdown_type):
3198 (socket_base::wait_type, socket_base::message_flags):
3199 Remove enumerators. Initialize constants directly with desired
3200 values.
3201 (socket_base::message_flags): Make all operators constexpr and
3202 noexcept.
3203 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
3204 New test utility.
3205 * testsuite/experimental/net/socket/socket_base.cc: New test.
3206
e3948473
GA
32072021-04-22 David Edelsohn <dje.gcc@gmail.com>
3208
3209 * config/os/aix/atomicity.h: Delete.
3210
32112021-04-22 Jonathan Wakely <jwakely@redhat.com>
3212
3213 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
3214 Handle system_clock as well as steady_clock.
3215 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
3216 * testsuite/30_threads/semaphore/try_acquire_until.cc:
3217 Re-enable.
3218
32192021-04-22 Jonathan Wakely <jwakely@redhat.com>
3220
3221 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
3222 options for libatomic.
3223
32242021-04-22 Jonathan Wakely <jwakely@redhat.com>
3225
3226 * config/os/gnu-linux/os_defines.h: Fix type in comment.
3227
32282021-04-22 Jonathan Wakely <jwakely@redhat.com>
3229
3230 PR libstdc++/99006
3231 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
3232 is not an array type.
3233 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
3234 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
3235
32362021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
3237
3238 * include/bits/atomic_wait.h: Always notify waiters in the
3239 case of 'bare' address notification.
3240
32412021-04-22 Jakub Jelinek <jakub@redhat.com>
3242
3243 PR target/100182
3244 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3245 ia32.
3246 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3247 ia32.
3248
32492021-04-22 Jonathan Wakely <jwakely@redhat.com>
3250
3251 PR libstdc++/100179
3252 * include/bits/semaphore_base.h: Remove #error.
3253 * include/std/semaphore: Do not define anything unless one of
3254 the implementations is available.
3255
c1ef0c92
GA
32562021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
3257
3258 * include/bits/semaphore_base.h: Always reload __old in
3259 __atomic_semaphore::_S_do_try_acquire().
3260 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
3261 re-enable testcase.
3262
32632021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
3264 Jonathan Wakely <jwakely@redhat.com>
3265
3266 PR libstdc++/99453
3267 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
3268 * python/Makefile.in: Regenerate.
3269
32702021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
3271
3272 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
3273 member to __platform_wait.
3274
32752021-04-21 Jonathan Wakely <jwakely@redhat.com>
3276
3277 * include/std/latch: Replace tab characters in license text.
3278 * include/std/semaphore: Likewise.
3279
32802021-04-21 Jakub Jelinek <jakub@redhat.com>
3281
3282 PR libstdc++/100164
3283 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
3284 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
3285 * configure: Regenerated.
3286 * config.h.in: Regenerated.
3287
be8aad8d
GA
32882021-04-20 Jonathan Wakely <jwakely@redhat.com>
3289
3290 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
3291 test for targets not using futexes for semaphores.
3292 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3293 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
3294 Disable for all targets.
3295
32962021-04-20 Thomas Rodgers <trodgers@redhat.com>
3297
3298 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
3299 * include/Makefile.in: Regenerate.
3300 * include/bits/this_thread_sleep.h: New file.
3301 * include/bits/atomic_base.h: Adjust all calls
3302 to __atomic_wait/__atomic_notify for new call signatures.
3303 * include/bits/atomic_timed_wait.h: Extensive rewrite.
3304 * include/bits/atomic_wait.h: Likewise.
3305 * include/bits/semaphore_base.h: Adjust all calls
3306 to __atomic_wait/__atomic_notify for new call signatures.
3307 * include/std/atomic: Likewise.
3308 * include/std/barrier: Likewise.
3309 * include/std/latch: Likewise.
3310 * include/std/semaphore: Likewise.
3311 * include/std/thread (this_thread::sleep_for)
3312 (this_thread::sleep_until): Move to new header.
3313 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
3314 test.
3315 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3316 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3317 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3318 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
3319 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
3320 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
3321
33222021-04-20 Patrick Palka <ppalka@redhat.com>
3323
3324 PR libstdc++/95983
3325 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
3326 Define.
3327 (move_iterator): Derive from the above in C++20 in order to
3328 conditionally define iterator_category as per P2259.
3329 (move_iterator::__base_cat): No longer used, so remove.
3330 (move_iterator::iterator_category): Remove in C++20.
3331 (__detail::__common_iter_use_postfix_proxy): Define.
3332 (common_iterator::_Proxy): Rename to ...
3333 (common_iterator:__arrow_proxy): ... this.
3334 (common_iterator::__postfix_proxy): Define as per P2259.
3335 (common_iterator::operator->): Adjust.
3336 (common_iterator::operator++): Adjust as per P2259.
3337 (iterator_traits<common_iterator>::_S_iter_cat): Define.
3338 (iterator_traits<common_iterator>::iterator_category): Change as
3339 per P2259.
3340 (__detail::__counted_iter_value_type): Define.
3341 (__detail::__counted_iter_concept): Define.
3342 (__detail::__counted_iter_cat): Define.
3343 (counted_iterator): Derive from the above three classes in order
3344 to conditionally define value_type, iterator_concept and
3345 iterator category respectively as per P2259.
3346 (counted_iterator::operator->): Define as per P2259.
3347 (incrementable_traits<counted_iterator>): Remove as per P2259.
3348 (iterator_traits<counted_iterator>): Adjust as per P2259.
3349 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
3350 (iota_view::_Iterator): Derive from the above in order to
3351 conditionally define iterator_category as per P2259.
3352 (iota_view::_S_iter_cat): Rename to ...
3353 (iota_view::_S_iter_concept): ... this.
3354 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
3355 (iota_view::iterator_category): Remove.
3356 (__detail::__filter_view_iter_cat): Define.
3357 (filter_view::_Iterator): Derive from the above in order to
3358 conditionally define iterator_category as per P2259.
3359 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
3360 (filter_view::_Iterator::iterator_category): Remove.
3361 (transform_view::_Base): Define.
3362 (transform_view::__iter_cat): Define.
3363 (transform_view::_Iterator): Derive from the above in order to
3364 conditionally define iterator_category as per P2259.
3365 (transform_view::_Iterator::_Base): Just alias
3366 transform_view::_Base.
3367 (transform_view::_Iterator::_S_iter_cat): Move to struct
3368 transform_view::__iter_cat.
3369 (transform_view::_Iterator::iterator_category): Remove.
3370 (transform_view::_Sentinel::_Base): Just alias
3371 transform_view::_Base.
3372 (join_view::_Base): Define.
3373 (join_view::_Outer_iter): Define.
3374 (join_view::_Inner_iter): Define.
3375 (join_view::_S_ref_is_glvalue): Define.
3376 (join_view::__iter_cat): Define.
3377 (join_view::_Iterator): Derive from it in order to conditionally
3378 define iterator_category as per P2259.
3379 (join_view::_Iterator::_Base): Just alias join_view::_Base.
3380 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
3381 join_view::_S_ref_is_glvalue.
3382 (join_view::_Iterator::_S_iter_cat): Move to struct
3383 transform_view::__iter_cat.
3384 (join_view::_Iterator::_Outer_iter): Just alias
3385 join_view::_Outer_iter.
3386 (join_view::_Iterator::_Inner_iter): Just alias
3387 join_view::_Inner_iter.
3388 (join_view::_Iterator::iterator_category): Remove.
3389 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
3390 (__detail::__split_view_outer_iter_cat): Define.
3391 (__detail::__split_view_inner_iter_cat): Define.
3392 (split_view::_Base): Define.
3393 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
3394 in order to conditionally define iterator_category as per P2259.
3395 (split_view::_Outer_iter::iterator_category): Remove.
3396 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
3397 in order to conditionally define iterator_category as per P2259.
3398 (split_view::_Inner_iter::_S_iter_cat): Move to
3399 __split_view_inner_iter_cat.
3400 (split_view::_Inner_iter::iterator_category): Remove.
3401 (elements_view::_Base): Define.
3402 (elements_view::__iter_cat): Define.
3403 (elements_view::_Iterator): Derive from the above in order to
3404 conditionall define iterator_category as per P2259.
3405 (elements_view::_Iterator::_Base): Just alias
3406 elements_view::_Base.
3407 (elements_view::_Iterator::_S_iter_concept)
3408 (elements_view::_Iterator::iterator_concept): Define as per
3409 P2259.
3410 (elements_view::_Iterator::iterator_category): Remove.
3411 (elements_view::_Sentinel::_Base): Just alias
3412 elements_view::_Base.
3413 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3414 Adjust constraints on iterator_traits<counted_iterator>.
3415 * testsuite/std/ranges/p2259.cc: New test.
3416
34172021-04-20 Jonathan Wakely <jwakely@redhat.com>
3418
3419 PR libstdc++/100146
3420 * include/std/charconv (__cpp_lib_to_chars): Define
3421 conditionally.
3422 * include/std/version (__cpp_lib_to_chars): Likewise..
3423 * testsuite/20_util/from_chars/4.cc: Only check feature test
3424 macro, not _GLIBCXX_HAVE_USELOCALE.
3425 * testsuite/20_util/from_chars/5.cc: Likewise.
3426 * testsuite/20_util/from_chars/6.cc: Likewise.
3427 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3428
34292021-04-20 Jakub Jelinek <jakub@redhat.com>
3430
3431 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
3432 versions with _IEEE128_ substring are found, set ieee_version_found
3433 to true. Ignore missing symbols with _IEEE128_ in version name if
3434 !ieee_version_found. Use i->first as version_name instead of
3435 i->second.version_name if the latter is empty.
3436 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3437
6e81e015
GA
34382021-04-19 H.J. Lu <hjl.tools@gmail.com>
3439
3440 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3441 Updated.
3442
da946b41
GA
34432021-04-17 Jakub Jelinek <jakub@redhat.com>
3444
3445 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3446 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3447
34482021-04-17 Jakub Jelinek <jakub@redhat.com>
3449
3450 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3451 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3452 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3453 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3454 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3455 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3456
ee351f7f
GA
34572021-04-15 Jonathan Wakely <jwakely@redhat.com>
3458
3459 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
3460 add libatomic options for 32-bit sparc*-*-linux-gnu.
3461
34622021-04-15 Jonathan Wakely <jwakely@redhat.com>
3463
3464 PR libstdc++/96657
3465 * libsupc++/Makefile.am: Add atomicity.cc here.
3466 * src/c++98/Makefile.am: Remove it from here.
3467 * libsupc++/Makefile.in: Regenerate.
3468 * src/c++98/Makefile.in: Regenerate.
3469 * testsuite/18_support/exception_ptr/96657.cc: New test.
3470
6d0d35d5
GA
34712021-04-13 Jonathan Wakely <jwakely@redhat.com>
3472
3473 PR libstdc++/100060
3474 * include/std/bit: Only include <ext/numeric_traits.h> for
3475 hosted build, use <limits> otherwise.
3476
34772021-04-13 Jonathan Wakely <jwakely@redhat.com>
3478
3479 * doc/xml/manual/backwards_compatibility.xml: Remove porting
3480 notes for libg++ and libstdc++-v2, and bibliography.
3481 * doc/html/*: Regenerated.
3482
287ad814
GA
34832021-04-12 Jonathan Wakely <jwakely@redhat.com>
3484
3485 PR libstdc++/100044
3486 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
3487 Remove helper concept.
3488 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
3489 deduction guides, as per LWG 3404.
3490 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
3491 template argument deduction fails.
3492
34932021-04-12 Jonathan Wakely <jwakely@redhat.com>
3494
3495 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
3496 Adjust expected error for C++20 mode.
3497 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
3498 Likewise.
3499
35002021-04-12 Jonathan Wakely <jwakely@redhat.com>
3501
3502 PR libstdc++/99995
3503 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
3504 standard headers and XFAIL for effective-target c++20.
3505
3115aba8
GA
35062021-04-09 François Dumont <fdumont@gcc.gnu.org>
3507
3508 PR libstdc++/99402
3509 * include/debug/helper_functions.h (__can_advance(_InputIterator,
3510 const std::pair<_Diff, _Distance_precision>&, int)): New.
3511 (__can_advance(const _Safe_iterator<>&,
3512 const std::pair<_Diff, _Distance_precision>&, int)): New.
3513 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
3514 use latter.
3515 (__glibcxx_check_can_increment_range): Adapt to use latter.
3516 (__glibcxx_check_can_decrement_range): Likewise.
3517 * include/debug/safe_iterator.h
3518 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3519 int)): New.
3520 (__can_advance(const _Safe_iterator<>&,
3521 const std::pair<_Diff, _Distance_precision>&, int)): New.
3522 * include/debug/safe_iterator.tcc
3523 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3524 int)): New.
3525 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
3526 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
3527 __dp_sign_max_size.
3528 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
3529 (__copy_move_backward_a): Likewise.
3530 (__equal_aux): Likewise.
3531 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
3532 const std::pair<_Diff, _Distance_precision>&, int)): New.
3533 (__can_advance(const std::move_iterator<>&,
3534 const std::pair<_Diff, _Distance_precision>&, int)): New.
3535 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
3536
35372021-04-09 Jonathan Wakely <jwakely@redhat.com>
3538
3539 PR libstdc++/99985
3540 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
3541 to be a valid constexpr function in C++11.
3542 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
3543
35442021-04-09 Jonathan Wakely <jwakely@redhat.com>
3545
3546 * include/bits/fs_fwd.h: Fix doxygen group command.
3547 * include/bits/streambuf_iterator.h: Likewise.
3548 * include/bits/uses_allocator_args.h: Likewise.
3549 * include/std/memory: Likewise.
3550 * include/tr1/complex: Likewise.
3551
019a9220
GA
35522021-04-08 Jonathan Wakely <jwakely@redhat.com>
3553
3554 * include/bits/basic_string.h: Tweak doxygen comment.
3555
35562021-04-08 Patrick Palka <ppalka@redhat.com>
3557
3558 * include/std/ranges (__detail::find): Define.
3559 (split_view::_OuterIter::operator++): Apply proposed resolution
3560 of LWG 3505.
3561 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
3562
35632021-04-08 Patrick Palka <ppalka@redhat.com>
3564
3565 * include/std/ranges (__detail::find_if): Simplify.
3566 (__detail::find_if_not): Likewise.
3567 (__detail::min): Remove.
3568 (__detail::mismatch): Simplify.
3569 (take_view::size): Use std::min instead of __detail::min.
3570
35712021-04-08 Patrick Palka <ppalka@redhat.com>
3572
3573 * include/std/ranges (__detail::__returnable_element): New
3574 concept.
3575 (elements_view): Use this concept in its constraints. Add
3576 missing private access specifier.
3577 (elements_view::_S_get_element): Define as per LWG 3502.
3578 (elements_view::operator*, elements_view::operator[]): Use
3579 _S_get_element.
3580 (elements_view::operator++): Remove unnecessary constraint
3581 as per LWG 3492.
3582 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
3583
35842021-04-08 Jonathan Wakely <jwakely@redhat.com>
3585
3586 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
3587 out-of-memory error in log file.
3588 * doc/Makefile.in: Regenerate.
3589
35902021-04-08 Jonathan Wakely <jwakely@redhat.com>
3591
3592 * configure: Regenerate.
3593
35942021-04-08 Jonathan Wakely <jwakely@redhat.com>
3595
3596 * include/bits/random.h: Fix doxygen group commands.
3597 * include/bits/regex_constants.h: Likewise.
3598 * include/tr1/random.h: Likewise.
3599
36002021-04-08 Jonathan Wakely <jwakely@redhat.com>
3601
3602 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
3603 New function to determine noexcept-specifier for move
3604 constructors.
3605 (_Hashtable): Use _S_nothrow_move() on move constructors.
3606 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
3607 Correct static assertion message.
3608 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
3609 Likewise.
3610 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
3611 Likewise.
3612 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
3613 Likewise.
3614
36152021-04-08 Patrick Palka <ppalka@redhat.com>
3616
3617 PR libstdc++/98384
3618 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
3619 on targets without a large long double. XFAIL the execution on
3620 targets with a non-conforming printf.
3621
36222021-04-08 Patrick Palka <ppalka@redhat.com>
3623
3624 PR libstdc++/99433
3625 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
3626 (__adaptor::__adaptor_invocable): New concept.
3627 (__adaptor::__adaptor_partial_app_viable): New concept.
3628 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
3629 non-template base class.
3630 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
3631 class template.
3632 (__adaptor::_Partial): New class template that represents
3633 partial application of a range adaptor non-closure.
3634 (__adaptor::__pipe_invocable): New concept.
3635 (__adaptor::_Pipe): New class template.
3636 (__detail::__can_ref_view): New concept.
3637 (__detail::__can_subrange): New concept.
3638 (all): Replace the lambda here with ...
3639 (_All): ... this functor. Add appropriate constraints.
3640 (__detail::__can_filter_view): New concept.
3641 (filter, _Filter): As in all/_All.
3642 (__detail::__can_transform): New concept.
3643 (transform, _Transform): As in all/_All.
3644 (__detail::__can_take_view): New concept.
3645 (take, _Take): As in all/_All.
3646 (__detail::__can_take_while_view): New concept.
3647 (take_while, _TakeWhile): As in all/_All.
3648 (__detail::__can_drop_view): New concept.
3649 (drop, _Drop): As in all/_All.
3650 (__detail::__can_drop_while_view): New concept.
3651 (drop_while, _DropWhile): As in all/_All.
3652 (__detail::__can_join_view): New concept.
3653 (join, _Join): As in all/_All.
3654 (__detail::__can_split_view): New concept.
3655 (split, _Split): As in all/_All. Rename template parameter
3656 _Fp to _Pattern.
3657 (__detail::__already_common): New concept.
3658 (__detail::__can_common_view): New concept.
3659 (common, _Common): As in all/_All.
3660 (__detail::__can_reverse_view): New concept.
3661 (reverse, _Reverse): As in all/_All.
3662 (__detail::__can_elements_view): New concept.
3663 (elements, _Elements): As in all/_All.
3664 (keys, values): Adjust.
3665 * testsuite/std/ranges/adaptors/99433.cc: New test.
3666 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
3667 adding empty range adaptor closure objects to a pipeline doesn't
3668 increase the size of the pipeline.
3669 (test05): New test.
3670 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
3671 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
3672 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
3673 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
3674 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
3675 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
3676 * testsuite/std/ranges/adaptors/p2281.cc: New test.
3677 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
3678 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
3679 Adjust.
3680 (test09): New test.
3681 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
3682 expected error message.
3683 (test02): Likewise. Extend test.
3684 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
3685 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
3686 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
3687 New test.
3688
36892021-04-08 Jonathan Wakely <jwakely@redhat.com>
3690
3691 * include/std/string_view: Adjust Doxygen @file comment.
3692
36932021-04-08 Jonathan Wakely <jwakely@redhat.com>
3694
3695 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
3696 specialization to not match incomplete enum types. Use a
3697 requires-expression instead of instantiating is_convertible.
3698 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
3699 * testsuite/20_util/is_scoped_enum/value.cc: Check with
3700 incomplete types and opaque-enum-declarations.
3701
299859c2
GA
37022021-04-07 Jonathan Wakely <jwakely@redhat.com>
3703
3704 PR libstdc++/99805
3705 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
3706 non-const member on _M_pathname, to avoid copy-on-write.
3707 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3708 Check construction from strings that might be shared.
3709
8cac6af6
GA
37102021-04-06 Jonathan Wakely <jwakely@redhat.com>
3711
3712 * include/bits/move.h (forward, move, move_if_noexcept)
3713 (addressof): Add _GLIBCXX_NODISCARD.
3714 * include/bits/ranges_cmp.h (identity::operator()): Add
3715 nodiscard attribute.
3716 * include/c_global/cstddef (to_integer): Likewise.
3717 * include/std/bit (bit_cast): Likewise.
3718 * include/std/utility (as_const, to_underlying): Likewise.
3719
37202021-04-06 Jonathan Wakely <jwakely@redhat.com>
3721
3722 * include/bits/move.h (forward): Change static_assert message
3723 to be unambiguous about what must be true.
3724 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
3725 * testsuite/20_util/forward/f_neg.cc: Likewise.
3726
37272021-04-06 Jonathan Wakely <jwakely@redhat.com>
3728
3729 * include/bits/alloc_traits.h: Use markdown for code font.
3730 * include/bits/basic_string.h: Fix @param names.
3731 * include/bits/max_size_type.h: Remove period after @file.
3732 * include/bits/regex.h: Fix duplicate @retval names, and rename.
3733 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
3734 group open to match existing group close.
3735 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
3736 open.
3737
8cac6af6
GA
37382021-04-06 Jonathan Wakely <jwakely@redhat.com>
3739
3740 * include/bits/atomic_base.h: Fix doxygen group close.
3741 * include/bits/basic_ios.h: Likewise.
3742 * include/bits/forward_list.h: Likewise.
3743 * include/bits/fs_dir.h: Likewise.
3744 * include/bits/fs_ops.h: Likewise.
3745 * include/bits/fs_path.h: Likewise.
3746 * include/bits/functional_hash.h: Likewise.
3747 * include/bits/gslice.h: Likewise.
3748 * include/bits/gslice_array.h: Likewise.
3749 * include/bits/hashtable_policy.h: Likewise.
3750 * include/bits/indirect_array.h: Likewise.
3751 * include/bits/locale_classes.h: Likewise.
3752 * include/bits/locale_facets.h: Likewise.
3753 * include/bits/locale_facets_nonio.h: Likewise.
3754 * include/bits/mask_array.h: Likewise.
3755 * include/bits/refwrap.h: Likewise.
3756 * include/bits/regex.h: Likewise.
3757 * include/bits/regex_automaton.h: Likewise.
3758 * include/bits/regex_compiler.h: Likewise.
3759 * include/bits/regex_constants.h: Likewise.
3760 * include/bits/regex_error.h: Likewise.
3761 * include/bits/regex_executor.h: Likewise.
3762 * include/bits/regex_scanner.h: Likewise.
3763 * include/bits/shared_ptr.h: Likewise.
3764 * include/bits/shared_ptr_atomic.h: Likewise.
3765 * include/bits/shared_ptr_base.h: Likewise.
3766 * include/bits/slice_array.h: Likewise.
3767 * include/bits/specfun.h: Likewise.
3768 * include/bits/std_function.h: Likewise.
3769 * include/bits/std_mutex.h: Likewise.
3770 * include/bits/stl_deque.h: Likewise.
3771 * include/bits/stl_iterator.h: Likewise.
3772 * include/bits/stl_iterator_base_types.h: Likewise.
3773 * include/bits/stl_map.h: Likewise.
3774 * include/bits/stl_multimap.h: Likewise.
3775 * include/bits/stl_multiset.h: Likewise.
3776 * include/bits/stl_numeric.h: Likewise.
3777 * include/bits/stl_pair.h: Likewise.
3778 * include/bits/stl_set.h: Likewise.
3779 * include/bits/stl_uninitialized.h: Likewise.
3780 * include/bits/stream_iterator.h: Likewise.
3781 * include/bits/streambuf_iterator.h: Likewise.
3782 * include/bits/unique_ptr.h: Likewise.
3783 * include/bits/unordered_map.h: Likewise.
3784 * include/bits/unordered_set.h: Likewise.
3785 * include/decimal/decimal: Likewise.
3786 * include/experimental/any: Likewise.
3787 * include/experimental/array: Likewise.
3788 * include/experimental/bits/fs_dir.h: Likewise.
3789 * include/experimental/bits/fs_fwd.h: Likewise.
3790 * include/experimental/bits/fs_ops.h: Likewise.
3791 * include/experimental/bits/fs_path.h: Likewise.
3792 * include/experimental/buffer: Likewise.
3793 * include/experimental/internet: Likewise.
3794 * include/experimental/optional: Likewise.
3795 * include/experimental/propagate_const: Likewise.
3796 * include/experimental/socket: Likewise.
3797 * include/ext/pb_ds/assoc_container.hpp: Likewise.
3798 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
3799 Likewise.
3800 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
3801 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
3802 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
3803 * include/ext/pb_ds/exception.hpp: Likewise.
3804 * include/ext/pb_ds/priority_queue.hpp: Likewise.
3805 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
3806 * include/ext/random: Likewise.
3807 * include/std/any: Likewise.
3808 * include/std/atomic: Likewise.
3809 * include/std/bitset: Likewise.
3810 * include/std/chrono: Likewise.
3811 * include/std/complex: Likewise.
3812 * include/std/condition_variable: Likewise.
3813 * include/std/fstream: Likewise.
3814 * include/std/future: Likewise.
3815 * include/std/iostream: Likewise.
3816 * include/std/istream: Likewise.
3817 * include/std/mutex: Likewise.
3818 * include/std/numeric: Likewise.
3819 * include/std/ostream: Likewise.
3820 * include/std/ratio: Likewise.
3821 * include/std/shared_mutex: Likewise.
3822 * include/std/stdexcept: Likewise.
3823 * include/std/streambuf: Likewise.
3824 * include/std/system_error: Likewise.
3825 * include/std/thread: Likewise.
3826 * include/std/valarray: Likewise.
3827 * include/std/variant: Likewise.
3828 * include/tr1/cmath: Likewise.
3829 * include/tr1/regex: Likewise.
3830 * include/tr2/dynamic_bitset: Likewise.
3831 * libsupc++/atomic_lockfree_defines.h: Likewise.
3832 * libsupc++/exception: Likewise.
3833 * libsupc++/exception.h: Likewise.
3834 * libsupc++/exception_ptr.h: Likewise.
3835 * libsupc++/nested_exception.h: Likewise.
3836
95d217ab
GA
38372021-03-31 Alexandre Oliva <oliva@adacore.com>
3838
3839 * testsuite/30_threads/future/members/poll.cc: Use faster
3840 after-ready call in the calibration loop.
3841
65374af2
GA
38422021-03-29 Jonathan Wakely <jwakely@redhat.com>
3843
3844 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
3845 * doc/html/manual/status.html: Regenerate.
3846
c4110112
GA
38472021-03-28 François Dumont <fdumont@gcc.gnu.org>
3848
3849 * include/debug/forward_list
3850 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
3851 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
3852 call to safe container allocator aware move constructor.
3853 * include/debug/vector (vector(vector&&, const allocator_type&)):
3854 Fix noexcept qualification.
3855 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
3856 Add allocator-extended move constructor noexceot qualification check.
3857 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
3858
651684b4
GA
38592021-03-26 Jonathan Wakely <jwakely@redhat.com>
3860
3861 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
3862 fallback is needed.
3863 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
3864 New helper functions and callback.
3865 (random_device::_M_init): Add 'prng' and 'all' enumerators.
3866 Replace switch with fallthrough with a series of 'if' statements.
3867 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
3868 checks fail.
3869 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
3870 token.
3871 (random_device::_M_getval): Check for callback unconditionally
3872 and always pass _M_file pointer.
3873 * testsuite/26_numerics/random/random_device/85494.cc: Remove
3874 effective-target check. Use new random_device_available helper.
3875 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
3876 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
3877 Remove effective-target check.
3878 * testsuite/26_numerics/random/random_device/cons/default.cc:
3879 Likewise.
3880 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
3881 new random_device_available helper. Test "prng" token.
3882 * testsuite/util/testsuite_random.h (random_device_available):
3883 New helper function.
3884
4493b1c1
GA
38852021-03-25 François Dumont <fdumont@gcc.gnu.org>
3886
3887 * include/debug/string
3888 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
3889 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
3890 (basic_string<>::erase): Adapt to take __const_iterator.
3891 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
3892 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
3893 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
3894 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
3895 (__gnu_debug::u16string, __gnu_debug::u32string): New.
3896 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
3897 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
3898 * testsuite/util/exception/safety.h
3899 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
3900 (insert_base<__gnu_debug::basic_string<>>): Likewise.
3901 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
3902 New partial specialization.
3903 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
3904 * testsuite/21_strings/basic_string/requirements/citerators.cc:
3905 Add test on __gnu_debug::string.
3906 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
3907 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
3908 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
3909 Likewise.
3910 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
3911 Likewise.
3912 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3913 Likewise.
3914 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3915 Likewise.
3916 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3917 Likewise.
3918 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3919 Likewise.
3920 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3921 Likewise.
3922 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
3923
39242021-03-25 Jakub Jelinek <jakub@redhat.com>
3925
3926 PR c++/99672
3927 * testsuite/18_support/source_location/consteval.cc (main): Adjust
3928 expected column numbers.
3929 * testsuite/18_support/source_location/1.cc (main): Likewise.
3930
39312021-03-25 Jonathan Wakely <jwakely@redhat.com>
3932
3933 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
3934
39352021-03-25 Jonathan Wakely <jwakely@redhat.com>
3936
3937 * testsuite/util/exception/safety.h (setup_base::generate):
3938 Support seeding random engine.
3939 (erase_point, erase_range): Adjust range of random numbers to
3940 ensure dereferenceable iterators are used where required.
3941 (generation_prohibited::run): Do not try to erase from empty
3942 containers.
3943 * testsuite/util/testsuite_containergen.h (test_containers):
3944 Support seeding random engine.
3945
bf1f3168
GA
39462021-03-23 Jonathan Wakely <jwakely@redhat.com>
3947
3948 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
3949 line with a check that uses the const being/end overloads.
3950
39512021-03-23 Moritz Sichert <sichert@in.tum.de>
3952
3953 * include/std/ranges (reverse_view::begin, reverse_view::end):
3954 Qualify make_reverse_iterator calls to avoid ADL.
3955 * testsuite/std/ranges/adaptors/reverse.cc: Test that
3956 views::reverse works when make_reverse_iterator is defined
3957 in an associated namespace.
3958
39592021-03-23 Jonathan Wakely <jwakely@redhat.com>
3960
3961 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3962 Do not define when compiling with Clang.
3963
8b744f46
GA
39642021-03-22 Jonathan Wakely <jwakely@redhat.com>
3965
3966 * include/std/string_view (basic_string_view(Range&&)): Define new
3967 constructor and deduction guide.
3968 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3969 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3970
39712021-03-22 Jonathan Wakely <jwakely@redhat.com>
3972
3973 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3974 Add missing 'noexcept' as per LWG 2280.
3975 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3976 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3977 * testsuite/24_iterators/range_access/range_access.cc: Check for
3978 expected noexcept specifiers. Check result types of generic
3979 std::begin and std::end overloads.
3980 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
3981 Check for expected noexcept specifiers.
3982 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3983 Likewise.
3984
5f256a70
GA
39852021-03-19 Jonathan Wakely <jwakely@redhat.com>
3986
3987 * include/std/type_traits (is_scoped_enum): Define.
3988 * include/std/version (__cpp_lib_is_scoped_enum): Define.
3989 * testsuite/20_util/is_scoped_enum/value.cc: New test.
3990 * testsuite/20_util/is_scoped_enum/version.cc: New test.
3991
bc212776
GA
39922021-03-16 Jonathan Wakely <jwakely@redhat.com>
3993
3994 PR libstdc++/99341
3995 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3996 std::once_flag symbols.
3997 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3998 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3999 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4000 Likewise.
4001 * config/abi/pre/gnu.ver: Likewise.
4002 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4003 (struct __once_flag_compat): Remove.
4004 (_ZNSt9once_flag11_M_activateEv): Remove.
4005 (_ZNSt9once_flag9_M_finishEb): Remove.
4006
40072021-03-16 Jonathan Wakely <jwakely@redhat.com>
4008
4009 PR libstdc++/99341
4010 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
4011 Revert to pthread_once_t implementation.
4012 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
4013 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4014 (struct __once_flag_compat): New type matching the reverted
4015 implementation of once_flag using futexes.
4016 (once_flag::_M_activate): Remove, replace with ...
4017 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
4018 (once_flag::_M_finish): Remove, replace with ...
4019 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
4020 * testsuite/30_threads/call_once/66146.cc: Removed.
4021
3c5b6d24
GA
40222021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4023
4024 * testsuite/17_intro/names.cc: Exclude j from the list
4025 of test symbols for Darwin.
4026
40272021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4028
4029 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
4030 to_chars and from_chars for long double.
4031
40322021-03-15 Patrick Palka <ppalka@redhat.com>
4033
4034 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
4035 Fix formatting.
4036 (__max_size_type::operator++): Define.
4037 (__max_size_type::operator--): Likewise.
4038 (__max_size_type::operator<=>): Conditionally define (in place
4039 of the other comparison operators).
4040 (__max_diff_type::operator _Tp): Fix formatting.
4041 (__max_diff_type::operator++): Define.
4042 (__max_diff_type::operator--): Likewise.
4043 (__max_diff_type::operator<=>): Conditionally define (in place
4044 of the other comparison operators).
4045 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
4046 these operator overloads.
4047
c2be8205
CT
40482021-03-15 Caroline Tice <cmtice@google.com>
4049
4050 PR libstdc++/99172
4051 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
4052 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
4053 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
4054 filtered out.
4055 * src/Makefile.in: Regenerate.
4056
48ff383f
GA
40572021-03-11 Patrick Palka <ppalka@redhat.com>
4058
4059 * src/c++17/floating_to_chars.cc: Simplify the file as if
4060 __SIZEOF_INT128__ is always defined.
4061 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
4062 a base-10 to_chars overload for the uint128_t class type.
4063 * src/c++17/uint128_t.h: New file.
4064 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
4065 execution FAIL on targets that have a large long double type
4066 but lack __int128.
4067
40682021-03-11 Patrick Palka <ppalka@redhat.com>
4069
4070 * src/c++17/ryu/LOCAL_PATCHES: Update.
4071 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
4072 * src/c++17/ryu/generic_128.h: Likewise.
4073 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
4074 Use uint128_t instead of __uint128_t.
4075 (generic_binary_to_decimal): Likewise.
4076
40772021-03-11 Patrick Palka <ppalka@redhat.com>
4078
4079 * src/c++17/ryu/LOCAL_PATCHES: New file.
4080
40812021-03-11 Patrick Palka <ppalka@redhat.com>
4082
4083 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
4084 defined alias of unsigned __int128.
4085 (floating_type_traits_binary128::mantissa_t): Use uint128_t
4086 instead of unsigned __int128.
4087 (floating_type_traits<long double>::mantissa_t)
4088 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
4089 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
4090 and uint32_t explicit. Simplify the extraction of mantissa,
4091 exponent and sign bit.
4092
40932021-03-11 Jonathan Wakely <jwakely@redhat.com>
4094
4095 * include/std/barrier (barrier::arrival_token): New move-only
4096 class that encapsulates the underlying token value.
4097
40982021-03-11 Jonathan Wakely <jwakely@redhat.com>
4099
4100 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
4101 instead of unqualified() method.
4102
41032021-03-11 Jonathan Wakely <jwakely@redhat.com>
4104
4105 PR libstdc++/99537
4106 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
4107 Use acq_rel memory ordering.
4108
41092021-03-11 Jonathan Wakely <jwakely@redhat.com>
4110
864caa15 4111 PR libstdc++/99533
48ff383f
GA
4112 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
4113 helper function to check for permission denied errors.
4114 * src/filesystem/dir.cc (recursive_directory_iterator):
4115 Likewise.
4116 * src/filesystem/dir-common.h (is_permission_denied_error): New
4117 helper function.
4118
41192021-03-11 Jonathan Wakely <jwakely@redhat.com>
4120
4121 PR libstdc++/99536
4122 * include/bits/random.h (normal_distribution): Use
4123 default-initializer for _M_saved and _M_saved_available.
4124
e9800852
GA
41252021-03-10 John David Anglin <danglin@gcc.gnu.org>
4126
4127 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
4128 link with libatomic.
4129 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4130 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4131 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4132 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4133 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4134 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4135 * testsuite/30_threads/barrier/completion.cc: Likewise.
4136 * testsuite/30_threads/latch/3.cc: Likewise.
4137 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
4138 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
4139 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4140
41412021-03-10 Jonathan Wakely <jwakely@redhat.com>
4142
4143 PR libstdc++/99413
4144 * include/bits/align.h: Include debug/assertions.h.
4145 * include/bits/codecvt.h: Include bits/c++config.h.
4146 * include/bits/enable_special_members.h: Likewise.
4147 * include/bits/erase_if.h: Likewise.
4148 * include/bits/functional_hash.h: Include <type_traits>.
4149 * include/bits/invoke.h: Include bits/move.h.
4150 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
4151 * include/bits/parse_numbers.h: Include <type_traits>.
4152 * include/bits/predefined_ops.h: Include bits/c++config.h.
4153 * include/bits/range_access.h: Include bits/stl_iterator.h.
4154 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
4155 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
4156 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
4157 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
4158 * include/bits/unique_lock.h: Include bits/std_mutex.h.
4159 * include/debug/assertions.h: Include bits/c++config.h.
4160
41612021-03-10 Jonathan Wakely <jwakely@redhat.com>
4162
4163 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
4164 (ranges::equal_to, ranges::not_equal_to): Do not constrain
4165 with __eq_builtin_ptr_cmp.
4166 (ranges::less, ranges::greater, ranges::less_equal)
4167 (ranges::greater_equal): Do not constrain with
4168 __less_builtin_ptr_cmp.
4169 * libsupc++/compare (compare_three_way): Do not constrain with
4170 __3way_builtin_ptr_cmp.
4171 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
4172 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
4173 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
4174
41752021-03-10 Jonathan Wakely <jwakely@redhat.com>
4176
4177 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
4178 C++20 calendar types.
4179
0ad6a2e2
GA
41802021-03-06 Jakub Jelinek <jakub@redhat.com>
4181
4182 PR libstdc++/99396
4183 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
4184 two _Nd which the compiler can pattern match the rotates.
4185
67f10d28
GA
41862021-03-04 Jonathan Wakely <jwakely@redhat.com>
4187
4188 PR libstdc++/99382
4189 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
4190 Make storage larger than required. Verify no write to the last
4191 element.
4192 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4193 Likewise.
4194
f3641ac7
GA
41952021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4196
4197 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
4198 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
4199 Likewise.
4200 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
4201 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
4202 Likewise.
4203
42042021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4205
4206 * include/experimental/bits/simd.h: Replace reserved _X, _B by
4207 _Xp, _Bp.
4208 * include/experimental/bits/simd_builtin.h: Likewise.
4209 * include/experimental/bits/simd_x86.h: Likewise.
4210
ec9dc4fa
GA
42112021-02-27 Jonathan Wakely <jwakely@redhat.com>
4212
4213 PR libstdc++/99301
4214 * include/std/chrono (year_month_day::_M_days_since_epoch()):
4215 Convert chrono::month and chrono::day to unsigned before
4216 converting to uint32_t.
4217
daa68844
GA
42182021-02-25 Jonathan Wakely <jwakely@redhat.com>
4219
4220 * include/std/chrono (year_month_day::_S_from_days): Perform
4221 all calculations with type uint32_t.
4222
42232021-02-25 Jonathan Wakely <jwakely@redhat.com>
4224
4225 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
4226 * doc/html/manual/abi.html: Regenerate.
4227
42282021-02-25 Jonathan Wakely <jwakely@redhat.com>
4229
4230 PR libstdc++/99270
4231 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
4232 FILE instead of FILE.
4233
42342021-02-25 Andreas Schwab <schwab@suse.de>
4235
4236 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
4237 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
4238 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
4239 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
4240
42412021-02-25 Jonathan Wakely <jwakely@redhat.com>
4242
4243 PR libstdc++/99265
4244 * include/std/chrono (year_month_day::_S_from_days): Cast long
4245 to int explicitly.
4246
42472021-02-25 Jonathan Wakely <jwakely@redhat.com>
4248
4249 * include/std/utility (to_underlying): Define.
4250 * include/std/version (__cpp_lib_to_underlying): Define.
4251 * testsuite/20_util/to_underlying/1.cc: New test.
4252 * testsuite/20_util/to_underlying/version.cc: New test.
4253
4028d01a
GA
42542021-02-24 Jonathan Wakely <jwakely@redhat.com>
4255
4256 PR libstdc++/99261
4257 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
4258 before value to be printed.
4259
42602021-02-24 Patrick Palka <ppalka@redhat.com>
4261
4262 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
4263 Relax the condition that guards the printf code path to accept
4264 F128_type as well as long double.
4265
42662021-02-24 Cassio Neri <cassio.neri@gmail.com>
4267
4268 * include/std/chrono (year_month_day_last:day): New
4269 implementation.
4270
42712021-02-24 Cassio Neri <cassio.neri@gmail.com>
4272
4273 * include/std/chrono (year::is_leap): New implementation.
4274 * testsuite/std/time/year/2.cc: New test.
4275
42762021-02-24 Cassio Neri <cassio.neri@gmail.com>
4277
4278 * include/std/chrono (year_month_day::_M_days_since_epoch):
4279 New implementation.
4280 * testsuite/std/time/year_month_day/4.cc: New test.
4281
42822021-02-24 Cassio Neri <cassio.neri@gmail.com>
4283
4284 * include/std/chrono (year_month_day::_S_from_days): New
4285 implementation.
4286 * testsuite/std/time/year_month_day/3.cc: New test.
4287
42882021-02-24 Patrick Palka <ppalka@redhat.com>
4289
4290 PR libstdc++/98384
4291 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
4292 (test01): Simplify verifying the nearby values by using a
4293 2-iteration loop and a dedicated output buffer to check that the
4294 nearby values are different. Factor out the printf-based
4295 verification into a local function, and check that the leading
4296 hex digits agree before comparing to the output of printf. Also
4297 verify the output by round-tripping it through from_chars.
4298
42992021-02-24 Jonathan Wakely <jwakely@redhat.com>
4300
4301 PR libstdc++/98389
4302 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
4303 symbols for long double arguments mangled as 'g'.
4304 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
4305 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
4306 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
4307 Use -mabi=ibmlongdouble for floating_to_chars.cc.
4308 * src/c++17/Makefile.in: Regenerate.
4309 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
4310 New type defining type traits of IEEE binary128 format.
4311 (floating_type_traits<__float128>): Define specialization.
4312 (floating_type_traits<long double>): Define in terms of
4313 floating_type_traits_binary128 when appropriate.
4314 (floating_to_shortest_scientific): Handle __float128.
4315 (sprintf_ld): New function template for printing a long double
4316 or __ieee128 value using sprintf.
4317 (__floating_to_chars_shortest, __floating_to_chars_precision):
4318 Use sprintf_ld.
4319 (to_chars): Define overloads for __float128.
4320
43212021-02-24 Jonathan Wakely <jwakely@redhat.com>
4322
4323 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
4324
71e24b06
GA
43252021-02-23 Martin Sebor <msebor@redhat.com>
4326
4327 PR c++/99074
4328 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
4329 first argument is null.
4330
43312021-02-23 Jakub Jelinek <jakub@redhat.com>
4332
4333 PR libstdc++/99181
4334 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
4335 test.
4336
43372021-02-23 Jakub Jelinek <jakub@redhat.com>
4338
4339 PR libstdc++/99181
4340 * include/bits/char_traits.h (char_traits<char>::compare): For
4341 constexpr evaluation don't call
4342 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
4343 directly.
4344
43452021-02-23 Jakub Jelinek <jakub@redhat.com>
4346
4347 PR libstdc++/97549
4348 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
4349
43502021-02-23 Patrick Palka <ppalka@redhat.com>
4351
4352 PR libstdc++/98384
4353 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
4354 the high- and low-order parts from an IBM long double value
4355 in an endian-agnostic way.
4356
50352c6c
GA
43572021-02-19 Jonathan Wakely <jwakely@redhat.com>
4358
4359 * include/bits/atomic_wait.h (__thread_relax()): Call
4360 __thread_yield() not __gthread_yield().
4361
de594739
GA
43622021-02-15 Jonathan Wakely <jwakely@redhat.com>
4363
4364 * include/bits/atomic_wait.h (__thread_yield()): Check
4365 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
4366 (__thread_relax()): Use __thread_yield() instead of repeating
4367 the preprocessor checks for __gthread_yield.
4368
43692021-02-15 Jonathan Wakely <jwakely@redhat.com>
4370
4371 * include/std/mutex (once_flag::_M_activate()): Add explicit
4372 return statement for passive case.
4373 (once_flag::_M_finish(bool)): Use reserved name for parameter.
4374
c5ae38e8
GA
43752021-02-14 Jonathan Wakely <jwakely@redhat.com>
4376
4377 PR libstdc++/99096
4378 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
4379
fab095da
GA
43802021-02-12 Jonathan Wakely <jwakely@redhat.com>
4381
4382 PR libstdc++/88881
4383 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
4384
43852021-02-12 Jonathan Wakely <jwakely@redhat.com>
4386
4387 * doc/xml/manual/status_cxx2014.xml: Document implementation
4388 specific properties of std::experimental::filesystem::rename.
4389 * doc/xml/manual/status_cxx2017.xml: Document implementation
4390 specific properties of std::filesystem::rename.
4391 * doc/html/*: Regenerate.
4392 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
4393 for directories on Windows.
4394 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
4395 MoveFileExW on Windows.
4396 * testsuite/27_io/filesystem/operations/rename.cc: New test.
4397 * testsuite/experimental/filesystem/operations/rename.cc: New test.
4398
43992021-02-12 Jonathan Wakely <jwakely@redhat.com>
4400
4401 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
4402 random number to the path.
4403
44042021-02-12 Jonathan Wakely <jwakely@redhat.com>
4405
4406 * include/experimental/internet (address_v6::to_string): Include
4407 scope ID in string.
4408 * testsuite/experimental/net/internet/address/v6/members.cc:
4409 Test to_string() results.
4410
44112021-02-12 Jonathan Wakely <jwakely@redhat.com>
4412
4413 * include/experimental/internet (address_v6::any): Avoid using
4414 memcpy in constexpr function.
4415 (address_v6::loopback): Likewise.
4416 (make_address_v6): Fix missing return statements on error paths.
4417 * include/experimental/io_context: Avoid -Wdangling-else
4418 warning.
4419 * testsuite/experimental/net/internet/address/v4/members.cc:
4420 Remove unused variables.
4421 * testsuite/experimental/net/internet/address/v6/members.cc:
4422 New test.
4423
44242021-02-12 Jonathan Wakely <jwakely@redhat.com>
4425
4426 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
4427 Add unused attribute to parameter.
4428 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
4429 Likewise.
4430
44312021-02-12 Jonathan Wakely <jwakely@redhat.com>
4432
4433 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
4434 if -fno-rtti is used.
4435 * testsuite/30_threads/async/forced_unwind.cc: Expect test
4436 to abort if -fno-rtti is used.
4437
44382021-02-12 Jonathan Wakely <jwakely@redhat.com>
4439
4440 * testsuite/util/testsuite_allocator.h (memory_resource):
4441 Remove requirement for RTTI and exceptions to be enabled.
4442
44432021-02-12 Jonathan Wakely <jwakely@redhat.com>
4444
4445 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
4446 static_cast when RTTI is disabled.
4447 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
4448 Likewise.
4449 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
4450 Likewise.
4451 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
4452 Likewise.
4453 * testsuite/27_io/basic_stringstream/str/char/2.cc:
4454 Likewise.
4455 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
4456 Likewise.
4457
44582021-02-12 Jonathan Wakely <jwakely@redhat.com>
4459
4460 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
4461 as unused and only use dynamic_cast when RTTI is enabled.
4462
44632021-02-12 Jonathan Wakely <jwakely@redhat.com>
4464
4465 PR libstdc++/99077
4466 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
4467 Change int parameter to error_code, to match std::ios_failure.
4468 (__throw_ios_failure(const char*, int)): Construct error_code
4469 from int parameter.
4470
0c5cdb31
GA
44712021-02-11 Jonathan Wakely <jwakely@redhat.com>
4472
4473 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
4474 new macro.
4475 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
4476 macro instead of _GLIBCXX_EH_PTR_COMPAT.
4477 (operator==): Likewise.
4478
44792021-02-11 Jonathan Wakely <jwakely@redhat.com>
4480
4481 PR libstdc++/99058
4482 * doc/xml/manual/status_cxx2011.xml: Document when support
4483 became stable.
4484 * doc/xml/manual/status_cxx2014.xml: Likewise.
4485 * doc/xml/manual/status_cxx2017.xml: Likewise.
4486 * doc/html/manual/status.html: Regenerate.
4487
4b37c3ea
GA
44882021-02-10 Jonathan Wakely <jwakely@redhat.com>
4489
4490 PR libstdc++/88881
4491 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
4492
44932021-02-10 Jonathan Wakely <jwakely@redhat.com>
4494
4495 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
4496 (fs::remove): Use std::system_category() for error codes from
4497 GetLastError().
4498 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
4499 Likewise.
4500
45012021-02-10 Jonathan Wakely <jwakely@redhat.com>
4502
4503 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
4504 in __MINGW32__ macro name.
4505 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4506 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4507 Likewise.
4508 * testsuite/27_io/filesystem/path/generation/relative.cc:
4509 Likewise.
4510 * testsuite/util/testsuite_fs.h: Likewise.
4511
0a91b73e
GA
45122021-02-09 François Dumont <fdumont@gcc.gnu.org>
4513
4514 * include/bits/stl_tree.h
4515 (__has_is_transparent, __has_is_transparent_t): Move...
4516 * include/bits/stl_function.h: ...here.
4517 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
4518 (_Hashtable_base<>::_M_equals_tr): New.
4519 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
4520 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
4521 heterogeneous lookup.
4522 (_Hashtable<>::_M_find_before_node_tr): New.
4523 (_Hashtable<>::_M_find_node_tr): New.
4524 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
4525 unordered_map::contains<>, unordered_map::equal_range<>): New member function
4526 templates to perform heterogeneous lookup.
4527 (unordered_multimap::find<>, unordered_multimap::count<>,
4528 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
4529 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
4530 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
4531 (unordered_multiset::find<>, unordered_multiset::count<>,
4532 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
4533 * include/debug/unordered_map
4534 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
4535 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
4536 * include/debug/unordered_set
4537 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
4538 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
4539 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
4540 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
4541 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
4542 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
4543
45442021-02-09 François Dumont <fdumont@gcc.gnu.org>
4545
4546 * include/bits/stl_deque.h
4547 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
4548 a null pointer test.
4549
45502021-02-09 Jonathan Wakely <jwakely@redhat.com>
4551
4552 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
4553 test directory after making it writable again.
4554 * testsuite/experimental/filesystem/operations/remove_all.cc:
4555 Likewise.
4556
45572021-02-09 Jonathan Wakely <jwakely@redhat.com>
4558
4559 PR libstdc++/99021
4560 * include/std/coroutine (coroutine_handle<P>::from_address): Add
4561 noexcept.
4562
45632021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
4564
4565 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
4566 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
4567
45682021-02-09 Jakub Jelinek <jakub@redhat.com>
4569
4570 PR middle-end/98465
4571 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
4572 points to the characters moved by earlier _S_move, compute the source
4573 address using expression based on the __p pointer rather than __s
4574 pointer.
4575
9faaa807
GA
45762021-02-03 Jonathan Wakely <jwakely@redhat.com>
4577
4578 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
4579 Add comparison with same category and different values.
4580 * testsuite/19_diagnostics/error_code/operators/less.cc:
4581 Likewise. Fix comparison involving different categories.
4582 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
4583 Likewise.
4584 * testsuite/19_diagnostics/error_condition/operators/less.cc:
4585 Add comment.
4586 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
4587 Likewise.
4588
45892021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
4590
4591 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
4592 calls with a single vaddv for aarch64.
4593
45942021-02-03 Matthias Kretz <kretz@kde.org>
4595
4596 * testsuite/Makefile.am: Warn about the workaround. Add
4597 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
4598 Improve initial user feedback from make check-simd.
4599 * testsuite/Makefile.in: Regenerated.
4600
46012021-02-03 Matthias Kretz <kretz@kde.org>
4602
4603 * include/experimental/bits/simd.h: Add __detail::_Minimum and
4604 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
4605 Add hmin and hmax overloads for simd and const_where_expression.
4606 * include/experimental/bits/simd_scalar.h
4607 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
4608 parameter const-ref to allow calling _S_reduce with an rvalue.
4609 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
4610 hmin and hmax. Since the compiler statically determined that all
4611 tests pass, repeat the test after a call to make_value_unknown.
4612
46132021-02-03 Matthias Kretz <kretz@kde.org>
4614
4615 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
4616 instruction pointer data member. Ensure that the `if (m_failed)`
4617 branch is always inlined into the calling code. The body of the
4618 conditional can still be a function call. Move the get_ip call
4619 into the verify ctor to simplify the ctor calls.
4620 (COMPARE): Don't mention the use of all_of for reduction of a
4621 simd_mask. It only distracts from the real issue.
4622
46232021-02-03 Matthias Kretz <kretz@kde.org>
4624
4625 * testsuite/experimental/simd/driver.sh: Abstract reading test
4626 options into read_src_option function. Read skip, only,
4627 expensive, and xfail via read_src_option. Add timeout and
4628 timeout-factor options and adjust timeout variable accordingly.
4629 * testsuite/experimental/simd/tests/loadstore.cc: Set
4630 timeout-factor 2.
4631
46322021-02-03 Matthias Kretz <kretz@kde.org>
4633
4634 * testsuite/experimental/simd/driver.sh: When handling the pipe
4635 to log (and on verbose to stdout) count the lines. If it exceeds
4636 1000 log the issue and exit 125, which is then handled as a
4637 failure.
4638
46392021-02-03 Matthias Kretz <kretz@kde.org>
4640
4641 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
4642 markup for long double on powerpc64*.
4643
46442021-02-03 Matthias Kretz <kretz@kde.org>
4645
4646 * include/experimental/bits/simd.h: Add __have_power10vec
4647 conditional on _ARCH_PWR10.
4648 * include/experimental/bits/simd_builtin.h: Forward declare
4649 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
4650 defined.
4651 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
4652 _SuperImpl for optimizations and correctness.
4653 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
4654 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
4655 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
4656 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
4657
46582021-02-03 Matthias Kretz <kretz@kde.org>
4659
4660 * testsuite/experimental/simd/driver.sh: Remove executable on
4661 SIGINT. Process compiler and test executable output: In verbose
4662 mode print messages immediately, limited to 1000 lines and
4663 breaking long lines to below $COLUMNS (or 1024 if not set).
4664 Communicating the exit status of the compiler / test with the
4665 necessary pipe is done via a message through stdout/-in.
4666
46672021-02-03 Matthias Kretz <kretz@kde.org>
4668
4669 * testsuite/Makefile.am: Ensure .simd.summary is empty before
4670 collecting a new summary.
4671 * testsuite/Makefile.in: Regenerate.
4672
46732021-02-03 Matthias Kretz <kretz@kde.org>
4674
4675 * testsuite/experimental/simd/generate_makefile.sh: Use
4676 different variables internally than documented for user
4677 overrides. This makes internal append/prepend work as intended.
4678
46792021-02-03 Matthias Kretz <kretz@kde.org>
4680
4681 * testsuite/experimental/simd/driver.sh (verify_test): Print
4682 test output on run xfail. Do not repeat lines from the log that
4683 were already printed on stdout.
4684 (test_selector): Make the compiler flags pattern usable as a
4685 substring selector.
4686 (toplevel): Trap on SIGINT and remove the log and sum files.
4687 Call timout with --foreground to quickly terminate on SIGINT.
4688 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
4689 targets via target patterns. Default DRIVEROPTS to -v for run
4690 targets. Remove log and sum files after completion of the run
4691 target (so that it's always recompiled).
4692 Place help text into text file for reasonable 'make help'
4693 performance.
4694
46952021-02-03 Matthias Kretz <kretz@kde.org>
4696
4697 * include/experimental/bits/simd.h: Remove unnecessary static
4698 assertion. Allow sizeof(8) integer __intrinsic_type to enable
4699 the necessary mask type.
4700
47012021-02-03 Matthias Kretz <kretz@kde.org>
4702
4703 * include/experimental/bits/simd.h: Let __intrinsic_type<long
4704 double, N> be valid if sizeof(long double) == sizeof(double) and
4705 use a __vector double as member type.
4706
47072021-02-03 Matthias Kretz <kretz@kde.org>
4708
4709 * include/experimental/bits/simd.h (__is_intrinsic_type): New
4710 internal type trait. Alias for __is_vector_type on x86.
4711 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
4712 __vector_type.
4713 (__intrin_bitcast): Allow casting to & from vector & intrinsic
4714 types.
4715 (__intrinsic_type): Explicitly specialize for NEON intrinsic
4716 vector types.
4717
47182021-02-03 Matthias Kretz <kretz@kde.org>
4719
4720 * testsuite/experimental/simd/driver.sh: Implement skip, only,
4721 expensive, and xfail markers. They can select on type, ABI tag
4722 subset number, target-triplet, and compiler flags.
4723 * testsuite/experimental/simd/generate_makefile.sh: The summary
4724 now includes lines for unexpected passes and expected failures.
4725 If the skip or only markers are only conditional on the type, do
4726 not generate rules for those types.
4727 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
4728 for ABI tag subsets 1-9.
4729 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
4730 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
4731 * testsuite/experimental/simd/tests/casts.cc: Ditto.
4732 * testsuite/experimental/simd/tests/generator.cc: Ditto.
4733 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
4734 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
4735 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
4736 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
4737 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
4738 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
4739 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
4740 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
4741 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
4742 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
4743 * testsuite/experimental/simd/tests/operators.cc: Ditto.
4744 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
4745 * testsuite/experimental/simd/tests/simd.cc: Ditto.
4746 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
4747 * testsuite/experimental/simd/tests/splits.cc: Ditto.
4748 * testsuite/experimental/simd/tests/where.cc: Ditto.
4749 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
4750 addition replace "test only floattypes" marker by unconditional
4751 "float|double|ldouble" only marker.
4752 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
4753 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
4754 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4755 Ditto.
4756 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
4757 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
4758 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
4759 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
4760 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
4761 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
4762 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
4763 addition, xfail on run because the reference data is missing.
4764
548b75d8
GA
47652021-02-02 Jonathan Wakely <jwakely@redhat.com>
4766
4767 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
4768 * doc/xml/manual/status_cxx2014.xml: Likewise.
4769 * doc/xml/manual/status_cxx2017.xml: Likewise.
4770 * doc/html/manual/status.html: Regenerate.
4771
f7884fb1
GA
47722021-02-01 François Dumont <fdumont@gcc.gnu.org>
4773
4774 PR libstdc++/70303
4775 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
4776 Return 0 if both iterators are value-initialized.
4777 * testsuite/23_containers/deque/70303.cc: New test.
4778 * testsuite/23_containers/vector/70303.cc: New test.
4779
47802021-02-01 Jonathan Wakely <jwakely@redhat.com>
4781
4782 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
4783 status.
4784 * doc/xml/manual/status_cxx2014.xml: Likewise.
4785 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
4786 std::from_chars and std::to_chars status. Fix formatting.
4787 * doc/html/manual/status.html: Regenerate.
4788
85d04a2e
GA
47892021-01-28 Jonathan Wakely <jwakely@redhat.com>
4790
4791 * include/experimental/bits/numeric_traits.h: Update copyright
4792 dates.
4793 * include/experimental/bits/simd.h: Likewise.
4794 * include/experimental/bits/simd_builtin.h: Likewise.
4795 * include/experimental/bits/simd_converter.h: Likewise.
4796 * include/experimental/bits/simd_detail.h: Likewise.
4797 * include/experimental/bits/simd_fixed_size.h: Likewise.
4798 * include/experimental/bits/simd_math.h: Likewise.
4799 * include/experimental/bits/simd_neon.h: Likewise.
4800 * include/experimental/bits/simd_ppc.h: Likewise.
4801 * include/experimental/bits/simd_scalar.h: Likewise.
4802 * include/experimental/bits/simd_x86.h: Likewise.
4803 * include/experimental/bits/simd_x86_conversions.h: Likewise.
4804 * include/experimental/simd: Likewise.
4805 * testsuite/experimental/simd/*: Likewise.
4806
aa69f0a8
GA
48072021-01-27 Jonathan Wakely <jwakely@redhat.com>
4808
4809 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
4810 * doc/html/*: Regenerate.
4811
48122021-01-27 Jonathan Wakely <jwakely@redhat.com>
4813
4814 * testsuite/experimental/simd/generate_makefile.sh: Use printf
4815 instead of echo when printing escape characters.
4816
48172021-01-27 Matthias Kretz <kretz@kde.org>
4818
4819 * scripts/check_simd: New file. This script is called from the
4820 the check-simd target. It determines a set of compiler flags and
4821 simulator setups for calling generate_makefile.sh and passes the
4822 information back to the check-simd target, which recurses to the
4823 generated Makefiles.
4824 * scripts/create_testsuite_files: Remove files below simd/tests/
4825 from testsuite_files and place them in testsuite_files_simd.
4826 * testsuite/Makefile.am: Add testsuite_files_simd. Add
4827 check-simd target.
4828 * testsuite/Makefile.in: Regenerate.
4829 * testsuite/experimental/simd/driver.sh: New file. This script
4830 compiles and runs a given simd test, logging its output and
4831 status. It uses the timeout command to implement compile and
4832 test timeouts.
4833 * testsuite/experimental/simd/generate_makefile.sh: New file.
4834 This script generates a Makefile which uses driver.sh to compile
4835 and run the tests and collect the logs into a single log file.
4836 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
4837 abs(simd).
4838 * testsuite/experimental/simd/tests/algorithms.cc: New file.
4839 Tests min/max(simd, simd).
4840 * testsuite/experimental/simd/tests/bits/conversions.h: New
4841 file. Contains functions to support tests involving conversions.
4842 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
4843 Support functions make_mask and make_vec.
4844 * testsuite/experimental/simd/tests/bits/mathreference.h: New
4845 file. Support functions to supply precomputed math function
4846 reference data.
4847 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
4848 file. Support code for SFINAE testing.
4849 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
4850 * testsuite/experimental/simd/tests/bits/test_values.h: New
4851 file. Test functions to easily drive a test with simd objects
4852 initialized from a given list of values and a range of random
4853 values.
4854 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
4855 Support code to determine the ULP distance of simd objects.
4856 * testsuite/experimental/simd/tests/bits/verify.h: New file.
4857 Test framework for COMPARE'ing simd objects and instantiating
4858 the test templates with value_type and ABI tag.
4859 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
4860 simd broadcasts.
4861 * testsuite/experimental/simd/tests/casts.cc: New file. Test
4862 simd casts.
4863 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
4864 Test floating-point classification functions.
4865 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
4866 frexp(simd).
4867 * testsuite/experimental/simd/tests/generator.cc: New file. Test
4868 simd generator constructor.
4869 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
4870 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
4871 * testsuite/experimental/simd/tests/integer_operators.cc: New
4872 file. Test integer operators.
4873 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4874 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
4875 modf(simd).
4876 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
4877 (converting) simd loads and stores.
4878 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
4879 log*(simd).
4880 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
4881 Test simd_mask broadcasts.
4882 * testsuite/experimental/simd/tests/mask_conversions.cc: New
4883 file. Test simd_mask conversions.
4884 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
4885 file. Test simd_mask implicit conversions.
4886 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
4887 Test simd_mask loads and stores.
4888 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
4889 file. Test simd_mask operators convert as specified.
4890 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
4891 Test simd_mask compares, subscripts, and negation.
4892 * testsuite/experimental/simd/tests/mask_reductions.cc: New
4893 file. Test simd_mask reductions.
4894 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
4895 1-arg math functions on simd.
4896 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
4897 2-arg math functions on simd.
4898 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
4899 Test implicit conversions on simd binary operators behave as
4900 specified.
4901 * testsuite/experimental/simd/tests/operators.cc: New file. Test
4902 simd compares, subscripts, not, unary minus, plus, minus,
4903 multiplies, divides, increment, and decrement.
4904 * testsuite/experimental/simd/tests/reductions.cc: New file.
4905 Test reduce(simd).
4906 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
4907 remqo(simd).
4908 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
4909 sanity checks of simd types.
4910 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
4911 sin(simd) and cos(simd).
4912 * testsuite/experimental/simd/tests/split_concat.cc: New file.
4913 Test split(simd) and concat(simd, simd).
4914 * testsuite/experimental/simd/tests/splits.cc: New file. Test
4915 split(simd_mask).
4916 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
4917 Test remaining trigonometric functions on simd.
4918 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
4919 file. Test trunc(simd), ceil(simd), and floor(simd).
4920 * testsuite/experimental/simd/tests/where.cc: New file. Test
4921 masked operations using where.
4922
49232021-01-27 Matthias Kretz <kretz@kde.org>
4924
4925 * doc/xml/manual/status_cxx2017.xml: Add implementation status
4926 of the Parallelism TS 2. Document implementation-defined types
4927 and behavior.
4928 * include/Makefile.am: Add new headers.
4929 * include/Makefile.in: Regenerate.
4930 * include/experimental/simd: New file. New header for
4931 Parallelism TS 2.
4932 * include/experimental/bits/numeric_traits.h: New file.
4933 Implementation of P1841R1 using internal naming. Addition of
4934 missing IEC559 functionality query.
4935 * include/experimental/bits/simd.h: New file. Definition of the
4936 public simd interfaces and general implementation helpers.
4937 * include/experimental/bits/simd_builtin.h: New file.
4938 Implementation of the _VecBuiltin simd_abi.
4939 * include/experimental/bits/simd_converter.h: New file. Generic
4940 simd conversions.
4941 * include/experimental/bits/simd_detail.h: New file. Internal
4942 macros for the simd implementation.
4943 * include/experimental/bits/simd_fixed_size.h: New file. Simd
4944 fixed_size ABI specific implementations.
4945 * include/experimental/bits/simd_math.h: New file. Math
4946 overloads for simd.
4947 * include/experimental/bits/simd_neon.h: New file. Simd NEON
4948 specific implementations.
4949 * include/experimental/bits/simd_ppc.h: New file. Implement bit
4950 shifts to avoid invalid results for integral types smaller than
4951 int.
4952 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
4953 ABI specific implementations.
4954 * include/experimental/bits/simd_x86.h: New file. Simd x86
4955 specific implementations.
4956 * include/experimental/bits/simd_x86_conversions.h: New file.
4957 x86 specific conversion optimizations. The conversion patterns
4958 work around missing conversion patterns in the compiler and
4959 should be removed as soon as PR85048 is resolved.
4960 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
4961 Test that all (not all fixed_size<N>, though) standard simd and
4962 simd_mask types are usable.
4963 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
4964 file. As above but with -ffast-math.
4965 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4966 from the standard test loop. Instead use
4967 check_vect_support_and_set_flags to build simd tests with the
4968 relevant machine flags.
4969
49702021-01-27 Jonathan Wakely <jwakely@redhat.com>
4971
4972 PR libstdc++/66414
4973 * include/bits/string_view.tcc
4974 (basic_string_view::find(const CharT*, size_type, size_type)):
4975 Optimize.
4976
49772021-01-27 Paul Fee <paul.f.fee@gmail.com>
4978
4979 * include/bits/basic_string.h (basic_string::contains): New
4980 member functions.
4981 * include/std/string_view (basic_string_view::contains):
4982 Likewise.
4983 * include/std/version (__cpp_lib_string_contains): Define.
4984 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4985 Remove trailing whitespace.
4986 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4987 Likewise.
4988 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4989 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4990 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4991 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4992 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4993
7559d465
GA
49942021-01-21 Jonathan Wakely <jwakely@redhat.com>
4995
4996 * src/c++17/Makefile.in: Regenerate.
4997
b93d0e36
GA
49982021-01-20 David Edelsohn <dje.gcc@gmail.com>
4999
5000 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
5001 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
5002 __lc_type.
5003 (const char* ctype<char>:: is): Same.
5004
ef1f8ee6
GA
50052021-01-18 Jonathan Wakely <jwakely@redhat.com>
5006
5007 PR libstdc++/98725
5008 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
5009 write to a wide character stream if wide character support is
5010 disabled in the library.
5011
50122021-01-18 Jonathan Wakely <jwakely@redhat.com>
5013
5014 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
5015 stringbuf not wstringbuf.
5016
50172021-01-18 Jakub Jelinek <jakub@redhat.com>
5018
5019 PR debug/98708
5020 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
5021 Compile with -gno-as-loc-support.
5022 * src/c++11/Makefile.in: Regenerated.
5023
59cf67d1
GA
50242021-01-16 H.J. Lu <hjl.tools@gmail.com>
5025
5026 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
5027 Add -fcf-protection=none to -march=i486.
5028
5fff80fd
GA
50292021-01-14 François Dumont <fdumont@gcc.gnu.org>
5030
5031 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
5032 compliant.
5033
50342021-01-14 Alexandre Oliva <oliva@adacore.com>
5035
5036 * testsuite/30_threads/future/members/poll.cc: Calibrate
5037 iteration count.
5038
50392021-01-14 François Dumont <fdumont@gcc.gnu.org>
5040
5041 PR libstdc++/98466
5042 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
5043 (_Node_iterator()): Make default.
5044 (_Node_const_iterator()): Make default.
5045 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
5046 iterator checks.
5047 * include/debug/safe_iterator.h
5048 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
5049 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
5050 Likewise.
5051 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
5052 _M_singular checks on input iterators.
5053 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
5054 checks.
5055 * testsuite/23_containers/deque/debug/98466.cc: New test.
5056 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
5057
50582021-01-14 Jonathan Wakely <jwakely@redhat.com>
5059
5060 PR libstdc++/98471
5061 * include/bits/fs_path.h (__throw_conversion_error): New
5062 function to throw or abort on character conversion errors.
5063 (__wstr_from_utf8): Move definition after filesystem_error has
5064 been defined. Use __throw_conversion_error.
5065 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
5066 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
5067 (path::u8string): Likewise.
5068
50692021-01-14 Jonathan Wakely <jwakely@redhat.com>
5070
5071 * include/std/barrier: Update copyright years. Fix whitespace.
5072 * include/std/version: Fix whitespace.
5073 * testsuite/30_threads/barrier/1.cc: Update copyright years.
5074 * testsuite/30_threads/barrier/2.cc: Likewise.
5075 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5076 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5077 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5078 * testsuite/30_threads/barrier/completion.cc: Likewise.
5079
be0851b8
GA
50802021-01-13 Jonathan Wakely <jwakely@redhat.com>
5081
5082 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
5083
366f86bd
GA
50842021-01-10 David Edelsohn <dje.gcc@gmail.com>
5085
5086 PR libstdc++/98613
5087 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
5088 warning.
5089 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
5090
bf5cbb9e
GA
50912021-01-08 Olivier Hainque <hainque@adacore.com>
5092
5093 * testsuite/20_util/bind/ref_neg.cc: Tweak the
5094 dg-prune-output regex for out-of-build-tree contexts.
5095
7d187e4f
GA
50962021-01-07 Thomas Rodgers <trodgers@redhat.com>
5097
5098 * doc/doxygen/user.cfg.in: Add new header.
5099 * include/Makefile.am (std_headers): likewise.
5100 * include/Makefile.in: Regenerate.
5101 * include/precompiled/stdc++.h: Add new header.
5102 * include/std/barrier: New file.
5103 * include/std/version: Add __cpp_lib_barrier feature test macro.
5104 * testsuite/30_threads/barrier/1.cc: New test.
5105 * testsuite/30_threads/barrier/2.cc: Likewise.
5106 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5107 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5108 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5109 * testsuite/30_threads/barrier/completion.cc: Likewise.
5110
51112021-01-07 Patrick Palka <ppalka@redhat.com>
5112
5113 PR libstdc++/98384
5114 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
5115 instead of the non-standard nextupl and nextdownl.
5116
651b8a50
GA
51172021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
5118
5119 * configure: Re-generate.
5120
51212021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
5122
5123 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
5124
b6dd195a
GA
51252021-01-01 Jakub Jelinek <jakub@redhat.com>
5126
5127 * ChangeLog-2020: Rotate ChangeLog. New file.
5128
b4df5e92 5129\f
618e665a 5130Copyright (C) 2021 Free Software Foundation, Inc.
b4df5e92
JW
5131
5132Copying and distribution of this file, with or without modification,
5133are permitted in any medium without royalty provided the copyright
5134notice and this notice are preserved.