Daily bump.
[platform/upstream/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
2
3         * include/std/string_view (basic_string_view(Range&&)): Define new
4         constructor and deduction guide.
5         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
7
8 2021-03-22  Jonathan Wakely  <jwakely@redhat.com>
9
10         * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
11         Add missing 'noexcept' as per LWG 2280.
12         (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
13         (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
14         * testsuite/24_iterators/range_access/range_access.cc: Check for
15         expected noexcept specifiers. Check result types of generic
16         std::begin and std::end overloads.
17         * testsuite/24_iterators/range_access/range_access_cpp14.cc:
18         Check for expected noexcept specifiers.
19         * testsuite/24_iterators/range_access/range_access_cpp17.cc:
20         Likewise.
21
22 2021-03-19  Jonathan Wakely  <jwakely@redhat.com>
23
24         * include/std/type_traits (is_scoped_enum): Define.
25         * include/std/version (__cpp_lib_is_scoped_enum): Define.
26         * testsuite/20_util/is_scoped_enum/value.cc: New test.
27         * testsuite/20_util/is_scoped_enum/version.cc: New test.
28
29 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
30
31         PR libstdc++/99341
32         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
33         std::once_flag symbols.
34         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
35         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
36         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
37         Likewise.
38         * config/abi/pre/gnu.ver: Likewise.
39         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
40         (struct __once_flag_compat): Remove.
41         (_ZNSt9once_flag11_M_activateEv): Remove.
42         (_ZNSt9once_flag9_M_finishEb): Remove.
43
44 2021-03-16  Jonathan Wakely  <jwakely@redhat.com>
45
46         PR libstdc++/99341
47         * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
48         Revert to pthread_once_t implementation.
49         [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
50         * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
51         (struct __once_flag_compat): New type matching the reverted
52         implementation of once_flag using futexes.
53         (once_flag::_M_activate): Remove, replace with ...
54         (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
55         (once_flag::_M_finish): Remove, replace with ...
56         (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
57         * testsuite/30_threads/call_once/66146.cc: Removed.
58
59 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
60
61         * testsuite/17_intro/names.cc: Exclude j from the list
62         of test symbols for Darwin.
63
64 2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>
65
66         * config/os/bsd/darwin/ppc-extra.ver: Add matching for
67         to_chars and from_chars for long double.
68
69 2021-03-15  Patrick Palka  <ppalka@redhat.com>
70
71         * include/bits/max_size_type.h (__max_size_type::operator _Tp):
72         Fix formatting.
73         (__max_size_type::operator++): Define.
74         (__max_size_type::operator--): Likewise.
75         (__max_size_type::operator<=>): Conditionally define (in place
76         of the other comparison operators).
77         (__max_diff_type::operator _Tp): Fix formatting.
78         (__max_diff_type::operator++): Define.
79         (__max_diff_type::operator--): Likewise.
80         (__max_diff_type::operator<=>): Conditionally define (in place
81         of the other comparison operators).
82         * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
83         these operator overloads.
84
85 2021-03-15  Caroline Tice  <cmtice@google.com>
86
87         PR libstdc++/99172
88         * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
89         AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
90         AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
91         filtered out.
92         * src/Makefile.in: Regenerate.
93
94 2021-03-11  Patrick Palka  <ppalka@redhat.com>
95
96         * src/c++17/floating_to_chars.cc: Simplify the file as if
97         __SIZEOF_INT128__ is always defined.
98         [!defined __SIZEOF_INT128__]: Include "uint128_t.h".  Define
99         a base-10 to_chars overload for the uint128_t class type.
100         * src/c++17/uint128_t.h: New file.
101         * testsuite/20_util/to_chars/long_double.cc: No longer expect an
102         execution FAIL on targets that have a large long double type
103         but lack __int128.
104
105 2021-03-11  Patrick Palka  <ppalka@redhat.com>
106
107         * src/c++17/ryu/LOCAL_PATCHES: Update.
108         * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
109         * src/c++17/ryu/generic_128.h: Likewise.
110         * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
111         Use uint128_t instead of __uint128_t.
112         (generic_binary_to_decimal): Likewise.
113
114 2021-03-11  Patrick Palka  <ppalka@redhat.com>
115
116         * src/c++17/ryu/LOCAL_PATCHES: New file.
117
118 2021-03-11  Patrick Palka  <ppalka@redhat.com>
119
120         * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
121         defined alias of unsigned __int128.
122         (floating_type_traits_binary128::mantissa_t): Use uint128_t
123         instead of unsigned __int128.
124         (floating_type_traits<long double>::mantissa_t)
125         [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
126         (get_ieee_repr): Likewise.  Make casts from uint_t to mantissa_t
127         and uint32_t explicit.  Simplify the extraction of mantissa,
128         exponent and sign bit.
129
130 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
131
132         * include/std/barrier (barrier::arrival_token): New move-only
133         class that encapsulates the underlying token value.
134
135 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
136
137         * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
138         instead of unqualified() method.
139
140 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
141
142         PR libstdc++/99537
143         * include/std/stop_token (_Stop_state_t::_M_release_ownership):
144         Use acq_rel memory ordering.
145
146 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
147
148         PR libstdc++/99537
149         * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
150         helper function to check for permission denied errors.
151         * src/filesystem/dir.cc (recursive_directory_iterator):
152         Likewise.
153         * src/filesystem/dir-common.h (is_permission_denied_error): New
154         helper function.
155
156 2021-03-11  Jonathan Wakely  <jwakely@redhat.com>
157
158         PR libstdc++/99536
159         * include/bits/random.h (normal_distribution): Use
160         default-initializer for _M_saved and _M_saved_available.
161
162 2021-03-10  John David Anglin  <danglin@gcc.gnu.org>
163
164         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
165         link with libatomic.
166         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
167         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
168         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
169         * testsuite/30_threads/barrier/arrive.cc: Likewise.
170         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
171         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
172         * testsuite/30_threads/barrier/completion.cc: Likewise.
173         * testsuite/30_threads/latch/3.cc: Likewise.
174         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
175         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
176         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
177
178 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
179
180         PR libstdc++/99413
181         * include/bits/align.h: Include debug/assertions.h.
182         * include/bits/codecvt.h: Include bits/c++config.h.
183         * include/bits/enable_special_members.h: Likewise.
184         * include/bits/erase_if.h: Likewise.
185         * include/bits/functional_hash.h: Include <type_traits>.
186         * include/bits/invoke.h: Include bits/move.h.
187         * include/bits/ostream_insert.h: Include bits/exception_defines.h.
188         * include/bits/parse_numbers.h: Include <type_traits>.
189         * include/bits/predefined_ops.h: Include bits/c++config.h.
190         * include/bits/range_access.h: Include bits/stl_iterator.h.
191         * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
192         * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
193         * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
194         * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
195         * include/bits/unique_lock.h: Include bits/std_mutex.h.
196         * include/debug/assertions.h: Include bits/c++config.h.
197
198 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
199
200         * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
201         (ranges::equal_to, ranges::not_equal_to): Do not constrain
202         with __eq_builtin_ptr_cmp.
203         (ranges::less, ranges::greater, ranges::less_equal)
204         (ranges::greater_equal): Do not constrain with
205         __less_builtin_ptr_cmp.
206         * libsupc++/compare (compare_three_way): Do not constrain with
207         __3way_builtin_ptr_cmp.
208         * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
209         * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
210         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
211
212 2021-03-10  Jonathan Wakely  <jwakely@redhat.com>
213
214         * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
215         C++20 calendar types.
216
217 2021-03-06  Jakub Jelinek  <jakub@redhat.com>
218
219         PR libstdc++/99396
220         * include/std/bit (__rotl, __rotr): Add optimized variants for power of
221         two _Nd which the compiler can pattern match the rotates.
222
223 2021-03-04  Jonathan Wakely  <jwakely@redhat.com>
224
225         PR libstdc++/99382
226         * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
227         Make storage larger than required. Verify no write to the last
228         element.
229         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
230         Likewise.
231
232 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
233
234         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
235         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
236         Likewise.
237         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
238         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
239         Likewise.
240
241 2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
242
243         * include/experimental/bits/simd.h: Replace reserved _X, _B by
244         _Xp, _Bp.
245         * include/experimental/bits/simd_builtin.h: Likewise.
246         * include/experimental/bits/simd_x86.h: Likewise.
247
248 2021-02-27  Jonathan Wakely  <jwakely@redhat.com>
249
250         PR libstdc++/99301
251         * include/std/chrono (year_month_day::_M_days_since_epoch()):
252         Convert chrono::month and chrono::day to unsigned before
253         converting to uint32_t.
254
255 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
256
257         * include/std/chrono (year_month_day::_S_from_days): Perform
258         all calculations with type uint32_t.
259
260 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
261
262         * doc/xml/manual/abi.xml: Document versioning for GCC 11.
263         * doc/html/manual/abi.html: Regenerate.
264
265 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
266
267         PR libstdc++/99270
268         * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
269         FILE instead of FILE.
270
271 2021-02-25  Andreas Schwab  <schwab@suse.de>
272
273         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
274         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
275         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
276         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
277
278 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
279
280         PR libstdc++/99265
281         * include/std/chrono (year_month_day::_S_from_days): Cast long
282         to int explicitly.
283
284 2021-02-25  Jonathan Wakely  <jwakely@redhat.com>
285
286         * include/std/utility (to_underlying): Define.
287         * include/std/version (__cpp_lib_to_underlying): Define.
288         * testsuite/20_util/to_underlying/1.cc: New test.
289         * testsuite/20_util/to_underlying/version.cc: New test.
290
291 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
292
293         PR libstdc++/99261
294         * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
295         before value to be printed.
296
297 2021-02-24  Patrick Palka  <ppalka@redhat.com>
298
299         * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
300         Relax the condition that guards the printf code path to accept
301         F128_type as well as long double.
302
303 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
304
305         * include/std/chrono (year_month_day_last:day): New
306         implementation.
307
308 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
309
310         * include/std/chrono (year::is_leap): New implementation.
311         * testsuite/std/time/year/2.cc: New test.
312
313 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
314
315         * include/std/chrono (year_month_day::_M_days_since_epoch):
316         New implementation.
317         * testsuite/std/time/year_month_day/4.cc: New test.
318
319 2021-02-24  Cassio Neri  <cassio.neri@gmail.com>
320
321         * include/std/chrono (year_month_day::_S_from_days): New
322         implementation.
323         * testsuite/std/time/year_month_day/3.cc: New test.
324
325 2021-02-24  Patrick Palka  <ppalka@redhat.com>
326
327         PR libstdc++/98384
328         * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
329         (test01): Simplify verifying the nearby values by using a
330         2-iteration loop and a dedicated output buffer to check that the
331         nearby values are different.  Factor out the printf-based
332         verification into a local function, and check that the leading
333         hex digits agree before comparing to the output of printf.  Also
334         verify the output by round-tripping it through from_chars.
335
336 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
337
338         PR libstdc++/98389
339         * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
340         symbols for long double arguments mangled as 'g'.
341         * config/os/gnu-linux/ldbl-extra.ver: Likewise.
342         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
343         * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
344         Use -mabi=ibmlongdouble for floating_to_chars.cc.
345         * src/c++17/Makefile.in: Regenerate.
346         * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
347         New type defining type traits of IEEE binary128 format.
348         (floating_type_traits<__float128>): Define specialization.
349         (floating_type_traits<long double>): Define in terms of
350         floating_type_traits_binary128 when appropriate.
351         (floating_to_shortest_scientific): Handle __float128.
352         (sprintf_ld): New function template for printing a long double
353         or __ieee128 value using sprintf.
354         (__floating_to_chars_shortest, __floating_to_chars_precision):
355         Use sprintf_ld.
356         (to_chars): Define overloads for __float128.
357
358 2021-02-24  Jonathan Wakely  <jwakely@redhat.com>
359
360         * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
361
362 2021-02-23  Martin Sebor  <msebor@redhat.com>
363
364         PR c++/99074
365         * libsupc++/dyncast.cc (__dynamic_cast): Return null when
366         first argument is null.
367
368 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
369
370         PR libstdc++/99181
371         * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
372         test.
373
374 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
375
376         PR libstdc++/99181
377         * include/bits/char_traits.h (char_traits<char>::compare): For
378         constexpr evaluation don't call
379         __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
380         directly.
381
382 2021-02-23  Jakub Jelinek  <jakub@redhat.com>
383
384         PR libstdc++/97549
385         * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
386
387 2021-02-23  Patrick Palka  <ppalka@redhat.com>
388
389         PR libstdc++/98384
390         * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
391         the high- and low-order parts from an IBM long double value
392         in an endian-agnostic way.
393
394 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
395
396         * include/bits/atomic_wait.h (__thread_relax()): Call
397         __thread_yield() not __gthread_yield().
398
399 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
400
401         * include/bits/atomic_wait.h (__thread_yield()): Check
402         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
403         (__thread_relax()): Use __thread_yield() instead of repeating
404         the preprocessor checks for __gthread_yield.
405
406 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
407
408         * include/std/mutex (once_flag::_M_activate()): Add explicit
409         return statement for passive case.
410         (once_flag::_M_finish(bool)): Use reserved name for parameter.
411
412 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
413
414         PR libstdc++/99096
415         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
416
417 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
418
419         PR libstdc++/88881
420         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
421
422 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
423
424         * doc/xml/manual/status_cxx2014.xml: Document implementation
425         specific properties of std::experimental::filesystem::rename.
426         * doc/xml/manual/status_cxx2017.xml: Document implementation
427         specific properties of std::filesystem::rename.
428         * doc/html/*: Regenerate.
429         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
430         for directories on Windows.
431         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
432         MoveFileExW on Windows.
433         * testsuite/27_io/filesystem/operations/rename.cc: New test.
434         * testsuite/experimental/filesystem/operations/rename.cc: New test.
435
436 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
437
438         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
439         random number to the path.
440
441 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
442
443         * include/experimental/internet (address_v6::to_string): Include
444         scope ID in string.
445         * testsuite/experimental/net/internet/address/v6/members.cc:
446         Test to_string() results.
447
448 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
449
450         * include/experimental/internet (address_v6::any): Avoid using
451         memcpy in constexpr function.
452         (address_v6::loopback): Likewise.
453         (make_address_v6): Fix missing return statements on error paths.
454         * include/experimental/io_context: Avoid -Wdangling-else
455         warning.
456         * testsuite/experimental/net/internet/address/v4/members.cc:
457         Remove unused variables.
458         * testsuite/experimental/net/internet/address/v6/members.cc:
459         New test.
460
461 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
462
463         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
464         Add unused attribute to parameter.
465         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
466         Likewise.
467
468 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
469
470         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
471         if -fno-rtti is used.
472         * testsuite/30_threads/async/forced_unwind.cc: Expect test
473         to abort if -fno-rtti is used.
474
475 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
476
477         * testsuite/util/testsuite_allocator.h (memory_resource):
478         Remove requirement for RTTI and exceptions to be enabled.
479
480 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
481
482         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
483         static_cast when RTTI is disabled.
484         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
485         Likewise.
486         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
487         Likewise.
488         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
489         Likewise.
490         * testsuite/27_io/basic_stringstream/str/char/2.cc:
491         Likewise.
492         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
493         Likewise.
494
495 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
496
497         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
498         as unused and only use dynamic_cast when RTTI is enabled.
499
500 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
501
502         PR libstdc++/99077
503         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
504         Change int parameter to error_code, to match std::ios_failure.
505         (__throw_ios_failure(const char*, int)): Construct error_code
506         from int parameter.
507
508 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
509
510         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
511         new macro.
512         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
513         macro instead of _GLIBCXX_EH_PTR_COMPAT.
514         (operator==): Likewise.
515
516 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
517
518         PR libstdc++/99058
519         * doc/xml/manual/status_cxx2011.xml: Document when support
520         became stable.
521         * doc/xml/manual/status_cxx2014.xml: Likewise.
522         * doc/xml/manual/status_cxx2017.xml: Likewise.
523         * doc/html/manual/status.html: Regenerate.
524
525 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
526
527         PR libstdc++/88881
528         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
529
530 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
531
532         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
533         (fs::remove): Use std::system_category() for error codes from
534         GetLastError().
535         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
536         Likewise.
537
538 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
539
540         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
541         in __MINGW32__ macro name.
542         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
543         * testsuite/27_io/filesystem/path/generation/proximate.cc:
544         Likewise.
545         * testsuite/27_io/filesystem/path/generation/relative.cc:
546         Likewise.
547         * testsuite/util/testsuite_fs.h: Likewise.
548
549 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
550
551         * include/bits/stl_tree.h
552         (__has_is_transparent, __has_is_transparent_t): Move...
553         * include/bits/stl_function.h: ...here.
554         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
555         (_Hashtable_base<>::_M_equals_tr): New.
556         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
557         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
558         heterogeneous lookup.
559         (_Hashtable<>::_M_find_before_node_tr): New.
560         (_Hashtable<>::_M_find_node_tr): New.
561         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
562         unordered_map::contains<>, unordered_map::equal_range<>): New member function
563         templates to perform heterogeneous lookup.
564         (unordered_multimap::find<>, unordered_multimap::count<>,
565         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
566         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
567         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
568         (unordered_multiset::find<>, unordered_multiset::count<>,
569         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
570         * include/debug/unordered_map
571         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
572         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
573         * include/debug/unordered_set
574         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
575         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
576         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
577         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
578         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
579         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
580
581 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
582
583         * include/bits/stl_deque.h
584         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
585         a null pointer test.
586
587 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
588
589         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
590         test directory after making it writable again.
591         * testsuite/experimental/filesystem/operations/remove_all.cc:
592         Likewise.
593
594 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
595
596         PR libstdc++/99021
597         * include/std/coroutine (coroutine_handle<P>::from_address): Add
598         noexcept.
599
600 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
601
602         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
603         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
604
605 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
606
607         PR middle-end/98465
608         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
609         points to the characters moved by earlier _S_move, compute the source
610         address using expression based on the __p pointer rather than __s
611         pointer.
612
613 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
614
615         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
616         Add comparison with same category and different values.
617         * testsuite/19_diagnostics/error_code/operators/less.cc:
618         Likewise. Fix comparison involving different categories.
619         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
620         Likewise.
621         * testsuite/19_diagnostics/error_condition/operators/less.cc:
622         Add comment.
623         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
624         Likewise.
625
626 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
627
628         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
629         calls with a single vaddv for aarch64.
630
631 2021-02-03  Matthias Kretz  <kretz@kde.org>
632
633         * testsuite/Makefile.am: Warn about the workaround. Add
634         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
635         Improve initial user feedback from make check-simd.
636         * testsuite/Makefile.in: Regenerated.
637
638 2021-02-03  Matthias Kretz  <kretz@kde.org>
639
640         * include/experimental/bits/simd.h: Add __detail::_Minimum and
641         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
642         Add hmin and hmax overloads for simd and const_where_expression.
643         * include/experimental/bits/simd_scalar.h
644         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
645         parameter const-ref to allow calling _S_reduce with an rvalue.
646         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
647         hmin and hmax. Since the compiler statically determined that all
648         tests pass, repeat the test after a call to make_value_unknown.
649
650 2021-02-03  Matthias Kretz  <kretz@kde.org>
651
652         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
653         instruction pointer data member. Ensure that the `if (m_failed)`
654         branch is always inlined into the calling code. The body of the
655         conditional can still be a function call. Move the get_ip call
656         into the verify ctor to simplify the ctor calls.
657         (COMPARE): Don't mention the use of all_of for reduction of a
658         simd_mask. It only distracts from the real issue.
659
660 2021-02-03  Matthias Kretz  <kretz@kde.org>
661
662         * testsuite/experimental/simd/driver.sh: Abstract reading test
663         options into read_src_option function. Read skip, only,
664         expensive, and xfail via read_src_option. Add timeout and
665         timeout-factor options and adjust timeout variable accordingly.
666         * testsuite/experimental/simd/tests/loadstore.cc: Set
667         timeout-factor 2.
668
669 2021-02-03  Matthias Kretz  <kretz@kde.org>
670
671         * testsuite/experimental/simd/driver.sh: When handling the pipe
672         to log (and on verbose to stdout) count the lines. If it exceeds
673         1000 log the issue and exit 125, which is then handled as a
674         failure.
675
676 2021-02-03  Matthias Kretz  <kretz@kde.org>
677
678         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
679         markup for long double on powerpc64*.
680
681 2021-02-03  Matthias Kretz  <kretz@kde.org>
682
683         * include/experimental/bits/simd.h: Add __have_power10vec
684         conditional on _ARCH_PWR10.
685         * include/experimental/bits/simd_builtin.h: Forward declare
686         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
687         defined.
688         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
689         _SuperImpl for optimizations and correctness.
690         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
691         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
692         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
693         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
694
695 2021-02-03  Matthias Kretz  <kretz@kde.org>
696
697         * testsuite/experimental/simd/driver.sh: Remove executable on
698         SIGINT. Process compiler and test executable output: In verbose
699         mode print messages immediately, limited to 1000 lines and
700         breaking long lines to below $COLUMNS (or 1024 if not set).
701         Communicating the exit status of the compiler / test with the
702         necessary pipe is done via a message through stdout/-in.
703
704 2021-02-03  Matthias Kretz  <kretz@kde.org>
705
706         * testsuite/Makefile.am: Ensure .simd.summary is empty before
707         collecting a new summary.
708         * testsuite/Makefile.in: Regenerate.
709
710 2021-02-03  Matthias Kretz  <kretz@kde.org>
711
712         * testsuite/experimental/simd/generate_makefile.sh: Use
713         different variables internally than documented for user
714         overrides. This makes internal append/prepend work as intended.
715
716 2021-02-03  Matthias Kretz  <kretz@kde.org>
717
718         * testsuite/experimental/simd/driver.sh (verify_test): Print
719         test output on run xfail. Do not repeat lines from the log that
720         were already printed on stdout.
721         (test_selector): Make the compiler flags pattern usable as a
722         substring selector.
723         (toplevel): Trap on SIGINT and remove the log and sum files.
724         Call timout with --foreground to quickly terminate on SIGINT.
725         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
726         targets via target patterns. Default DRIVEROPTS to -v for run
727         targets. Remove log and sum files after completion of the run
728         target (so that it's always recompiled).
729         Place help text into text file for reasonable 'make help'
730         performance.
731
732 2021-02-03  Matthias Kretz  <kretz@kde.org>
733
734         * include/experimental/bits/simd.h: Remove unnecessary static
735         assertion. Allow sizeof(8) integer __intrinsic_type to enable
736         the necessary mask type.
737
738 2021-02-03  Matthias Kretz  <kretz@kde.org>
739
740         * include/experimental/bits/simd.h: Let __intrinsic_type<long
741         double, N> be valid if sizeof(long double) == sizeof(double) and
742         use a __vector double as member type.
743
744 2021-02-03  Matthias Kretz  <kretz@kde.org>
745
746         * include/experimental/bits/simd.h (__is_intrinsic_type): New
747         internal type trait. Alias for __is_vector_type on x86.
748         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
749         __vector_type.
750         (__intrin_bitcast): Allow casting to & from vector & intrinsic
751         types.
752         (__intrinsic_type): Explicitly specialize for NEON intrinsic
753         vector types.
754
755 2021-02-03  Matthias Kretz  <kretz@kde.org>
756
757         * testsuite/experimental/simd/driver.sh: Implement skip, only,
758         expensive, and xfail markers. They can select on type, ABI tag
759         subset number, target-triplet, and compiler flags.
760         * testsuite/experimental/simd/generate_makefile.sh: The summary
761         now includes lines for unexpected passes and expected failures.
762         If the skip or only markers are only conditional on the type, do
763         not generate rules for those types.
764         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
765         for ABI tag subsets 1-9.
766         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
767         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
768         * testsuite/experimental/simd/tests/casts.cc: Ditto.
769         * testsuite/experimental/simd/tests/generator.cc: Ditto.
770         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
771         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
772         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
773         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
774         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
775         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
776         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
777         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
778         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
779         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
780         * testsuite/experimental/simd/tests/operators.cc: Ditto.
781         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
782         * testsuite/experimental/simd/tests/simd.cc: Ditto.
783         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
784         * testsuite/experimental/simd/tests/splits.cc: Ditto.
785         * testsuite/experimental/simd/tests/where.cc: Ditto.
786         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
787         addition replace "test only floattypes" marker by unconditional
788         "float|double|ldouble" only marker.
789         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
790         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
791         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
792         Ditto.
793         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
794         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
795         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
796         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
797         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
798         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
799         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
800         addition, xfail on run because the reference data is missing.
801
802 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
803
804         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
805         * doc/xml/manual/status_cxx2014.xml: Likewise.
806         * doc/xml/manual/status_cxx2017.xml: Likewise.
807         * doc/html/manual/status.html: Regenerate.
808
809 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
810
811         PR libstdc++/70303
812         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
813         Return 0 if both iterators are value-initialized.
814         * testsuite/23_containers/deque/70303.cc: New test.
815         * testsuite/23_containers/vector/70303.cc: New test.
816
817 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
818
819         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
820         status.
821         * doc/xml/manual/status_cxx2014.xml: Likewise.
822         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
823         std::from_chars and std::to_chars status. Fix formatting.
824         * doc/html/manual/status.html: Regenerate.
825
826 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
827
828         * include/experimental/bits/numeric_traits.h: Update copyright
829         dates.
830         * include/experimental/bits/simd.h: Likewise.
831         * include/experimental/bits/simd_builtin.h: Likewise.
832         * include/experimental/bits/simd_converter.h: Likewise.
833         * include/experimental/bits/simd_detail.h: Likewise.
834         * include/experimental/bits/simd_fixed_size.h: Likewise.
835         * include/experimental/bits/simd_math.h: Likewise.
836         * include/experimental/bits/simd_neon.h: Likewise.
837         * include/experimental/bits/simd_ppc.h: Likewise.
838         * include/experimental/bits/simd_scalar.h: Likewise.
839         * include/experimental/bits/simd_x86.h: Likewise.
840         * include/experimental/bits/simd_x86_conversions.h: Likewise.
841         * include/experimental/simd: Likewise.
842         * testsuite/experimental/simd/*: Likewise.
843
844 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
845
846         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
847         * doc/html/*: Regenerate.
848
849 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
850
851         * testsuite/experimental/simd/generate_makefile.sh: Use printf
852         instead of echo when printing escape characters.
853
854 2021-01-27  Matthias Kretz  <kretz@kde.org>
855
856         * scripts/check_simd: New file. This script is called from the
857         the check-simd target. It determines a set of compiler flags and
858         simulator setups for calling generate_makefile.sh and passes the
859         information back to the check-simd target, which recurses to the
860         generated Makefiles.
861         * scripts/create_testsuite_files: Remove files below simd/tests/
862         from testsuite_files and place them in testsuite_files_simd.
863         * testsuite/Makefile.am: Add testsuite_files_simd. Add
864         check-simd target.
865         * testsuite/Makefile.in: Regenerate.
866         * testsuite/experimental/simd/driver.sh: New file. This script
867         compiles and runs a given simd test, logging its output and
868         status. It uses the timeout command to implement compile and
869         test timeouts.
870         * testsuite/experimental/simd/generate_makefile.sh: New file.
871         This script generates a Makefile which uses driver.sh to compile
872         and run the tests and collect the logs into a single log file.
873         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
874         abs(simd).
875         * testsuite/experimental/simd/tests/algorithms.cc: New file.
876         Tests min/max(simd, simd).
877         * testsuite/experimental/simd/tests/bits/conversions.h: New
878         file. Contains functions to support tests involving conversions.
879         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
880         Support functions make_mask and make_vec.
881         * testsuite/experimental/simd/tests/bits/mathreference.h: New
882         file. Support functions to supply precomputed math function
883         reference data.
884         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
885         file. Support code for SFINAE testing.
886         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
887         * testsuite/experimental/simd/tests/bits/test_values.h: New
888         file. Test functions to easily drive a test with simd objects
889         initialized from a given list of values and a range of random
890         values.
891         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
892         Support code to determine the ULP distance of simd objects.
893         * testsuite/experimental/simd/tests/bits/verify.h: New file.
894         Test framework for COMPARE'ing simd objects and instantiating
895         the test templates with value_type and ABI tag.
896         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
897         simd broadcasts.
898         * testsuite/experimental/simd/tests/casts.cc: New file. Test
899         simd casts.
900         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
901         Test floating-point classification functions.
902         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
903         frexp(simd).
904         * testsuite/experimental/simd/tests/generator.cc: New file. Test
905         simd generator constructor.
906         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
907         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
908         * testsuite/experimental/simd/tests/integer_operators.cc: New
909         file. Test integer operators.
910         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
911         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
912         modf(simd).
913         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
914         (converting) simd loads and stores.
915         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
916         log*(simd).
917         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
918         Test simd_mask broadcasts.
919         * testsuite/experimental/simd/tests/mask_conversions.cc: New
920         file. Test simd_mask conversions.
921         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
922         file. Test simd_mask implicit conversions.
923         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
924         Test simd_mask loads and stores.
925         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
926         file. Test simd_mask operators convert as specified.
927         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
928         Test simd_mask compares, subscripts, and negation.
929         * testsuite/experimental/simd/tests/mask_reductions.cc: New
930         file. Test simd_mask reductions.
931         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
932         1-arg math functions on simd.
933         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
934         2-arg math functions on simd.
935         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
936         Test implicit conversions on simd binary operators behave as
937         specified.
938         * testsuite/experimental/simd/tests/operators.cc: New file. Test
939         simd compares, subscripts, not, unary minus, plus, minus,
940         multiplies, divides, increment, and decrement.
941         * testsuite/experimental/simd/tests/reductions.cc: New file.
942         Test reduce(simd).
943         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
944         remqo(simd).
945         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
946         sanity checks of simd types.
947         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
948         sin(simd) and cos(simd).
949         * testsuite/experimental/simd/tests/split_concat.cc: New file.
950         Test split(simd) and concat(simd, simd).
951         * testsuite/experimental/simd/tests/splits.cc: New file. Test
952         split(simd_mask).
953         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
954         Test remaining trigonometric functions on simd.
955         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
956         file. Test trunc(simd), ceil(simd), and floor(simd).
957         * testsuite/experimental/simd/tests/where.cc: New file. Test
958         masked operations using where.
959
960 2021-01-27  Matthias Kretz  <kretz@kde.org>
961
962         * doc/xml/manual/status_cxx2017.xml: Add implementation status
963         of the Parallelism TS 2. Document implementation-defined types
964         and behavior.
965         * include/Makefile.am: Add new headers.
966         * include/Makefile.in: Regenerate.
967         * include/experimental/simd: New file. New header for
968         Parallelism TS 2.
969         * include/experimental/bits/numeric_traits.h: New file.
970         Implementation of P1841R1 using internal naming. Addition of
971         missing IEC559 functionality query.
972         * include/experimental/bits/simd.h: New file. Definition of the
973         public simd interfaces and general implementation helpers.
974         * include/experimental/bits/simd_builtin.h: New file.
975         Implementation of the _VecBuiltin simd_abi.
976         * include/experimental/bits/simd_converter.h: New file. Generic
977         simd conversions.
978         * include/experimental/bits/simd_detail.h: New file. Internal
979         macros for the simd implementation.
980         * include/experimental/bits/simd_fixed_size.h: New file. Simd
981         fixed_size ABI specific implementations.
982         * include/experimental/bits/simd_math.h: New file. Math
983         overloads for simd.
984         * include/experimental/bits/simd_neon.h: New file. Simd NEON
985         specific implementations.
986         * include/experimental/bits/simd_ppc.h: New file. Implement bit
987         shifts to avoid invalid results for integral types smaller than
988         int.
989         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
990         ABI specific implementations.
991         * include/experimental/bits/simd_x86.h: New file. Simd x86
992         specific implementations.
993         * include/experimental/bits/simd_x86_conversions.h: New file.
994         x86 specific conversion optimizations. The conversion patterns
995         work around missing conversion patterns in the compiler and
996         should be removed as soon as PR85048 is resolved.
997         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
998         Test that all (not all fixed_size<N>, though) standard simd and
999         simd_mask types are usable.
1000         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
1001         file. As above but with -ffast-math.
1002         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
1003         from the standard test loop. Instead use
1004         check_vect_support_and_set_flags to build simd tests with the
1005         relevant machine flags.
1006
1007 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
1008
1009         PR libstdc++/66414
1010         * include/bits/string_view.tcc
1011         (basic_string_view::find(const CharT*, size_type, size_type)):
1012         Optimize.
1013
1014 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
1015
1016         * include/bits/basic_string.h (basic_string::contains): New
1017         member functions.
1018         * include/std/string_view (basic_string_view::contains):
1019         Likewise.
1020         * include/std/version (__cpp_lib_string_contains): Define.
1021         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
1022         Remove trailing whitespace.
1023         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
1024         Likewise.
1025         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
1026         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
1027         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
1028         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
1029         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
1030
1031 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
1032
1033         * src/c++17/Makefile.in: Regenerate.
1034
1035 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
1036
1037         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
1038         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
1039         __lc_type.
1040         (const char* ctype<char>:: is): Same.
1041
1042 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
1043
1044         PR libstdc++/98725
1045         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
1046         write to a wide character stream if wide character support is
1047         disabled in the library.
1048
1049 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
1050
1051         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
1052         stringbuf not wstringbuf.
1053
1054 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
1055
1056         PR debug/98708
1057         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
1058         Compile with -gno-as-loc-support.
1059         * src/c++11/Makefile.in: Regenerated.
1060
1061 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
1062
1063         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1064         Add -fcf-protection=none to -march=i486.
1065
1066 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
1067
1068         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
1069         compliant.
1070
1071 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
1072
1073         * testsuite/30_threads/future/members/poll.cc: Calibrate
1074         iteration count.
1075
1076 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
1077
1078         PR libstdc++/98466
1079         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
1080         (_Node_iterator()): Make default.
1081         (_Node_const_iterator()): Make default.
1082         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
1083         iterator checks.
1084         * include/debug/safe_iterator.h
1085         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
1086         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1087         Likewise.
1088         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
1089         _M_singular checks on input iterators.
1090         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
1091         checks.
1092         * testsuite/23_containers/deque/debug/98466.cc: New test.
1093         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
1094
1095 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
1096
1097         PR libstdc++/98471
1098         * include/bits/fs_path.h (__throw_conversion_error): New
1099         function to throw or abort on character conversion errors.
1100         (__wstr_from_utf8): Move definition after filesystem_error has
1101         been defined. Use __throw_conversion_error.
1102         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
1103         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
1104         (path::u8string): Likewise.
1105
1106 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
1107
1108         * include/std/barrier: Update copyright years. Fix whitespace.
1109         * include/std/version: Fix whitespace.
1110         * testsuite/30_threads/barrier/1.cc: Update copyright years.
1111         * testsuite/30_threads/barrier/2.cc: Likewise.
1112         * testsuite/30_threads/barrier/arrive.cc: Likewise.
1113         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1114         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1115         * testsuite/30_threads/barrier/completion.cc: Likewise.
1116
1117 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
1118
1119         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
1120
1121 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
1122
1123         PR libstdc++/98613
1124         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
1125         warning.
1126         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
1127
1128 2021-01-08  Olivier Hainque  <hainque@adacore.com>
1129
1130         * testsuite/20_util/bind/ref_neg.cc: Tweak the
1131         dg-prune-output regex for out-of-build-tree contexts.
1132
1133 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
1134
1135         * doc/doxygen/user.cfg.in: Add new header.
1136         * include/Makefile.am (std_headers): likewise.
1137         * include/Makefile.in: Regenerate.
1138         * include/precompiled/stdc++.h: Add new header.
1139         * include/std/barrier: New file.
1140         * include/std/version: Add __cpp_lib_barrier feature test macro.
1141         * testsuite/30_threads/barrier/1.cc: New test.
1142         * testsuite/30_threads/barrier/2.cc: Likewise.
1143         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1144         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1145         * testsuite/30_threads/barrier/arrive.cc: Likewise.
1146         * testsuite/30_threads/barrier/completion.cc: Likewise.
1147
1148 2021-01-07  Patrick Palka  <ppalka@redhat.com>
1149
1150         PR libstdc++/98384
1151         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
1152         instead of the non-standard nextupl and nextdownl.
1153
1154 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1155
1156         * configure: Re-generate.
1157
1158 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
1159
1160         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
1161
1162 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
1163
1164         * ChangeLog-2020: Rotate ChangeLog.  New file.
1165
1166 \f
1167 Copyright (C) 2021 Free Software Foundation, Inc.
1168
1169 Copying and distribution of this file, with or without modification,
1170 are permitted in any medium without royalty provided the copyright
1171 notice and this notice are preserved.