0186f73436e8ea3e8d6b8548c816ccd6287f4cd0
[platform/upstream/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-02-19  Jonathan Wakely  <jwakely@redhat.com>
2
3         * include/bits/atomic_wait.h (__thread_relax()): Call
4         __thread_yield() not __gthread_yield().
5
6 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
7
8         * include/bits/atomic_wait.h (__thread_yield()): Check
9         _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
10         (__thread_relax()): Use __thread_yield() instead of repeating
11         the preprocessor checks for __gthread_yield.
12
13 2021-02-15  Jonathan Wakely  <jwakely@redhat.com>
14
15         * include/std/mutex (once_flag::_M_activate()): Add explicit
16         return statement for passive case.
17         (once_flag::_M_finish(bool)): Use reserved name for parameter.
18
19 2021-02-14  Jonathan Wakely  <jwakely@redhat.com>
20
21         PR libstdc++/99096
22         * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
23
24 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
25
26         PR libstdc++/88881
27         * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
28
29 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
30
31         * doc/xml/manual/status_cxx2014.xml: Document implementation
32         specific properties of std::experimental::filesystem::rename.
33         * doc/xml/manual/status_cxx2017.xml: Document implementation
34         specific properties of std::filesystem::rename.
35         * doc/html/*: Regenerate.
36         * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
37         for directories on Windows.
38         * src/filesystem/ops-common.h (__gnu_posix::rename): Use
39         MoveFileExW on Windows.
40         * testsuite/27_io/filesystem/operations/rename.cc: New test.
41         * testsuite/experimental/filesystem/operations/rename.cc: New test.
42
43 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
44
45         * testsuite/util/testsuite_fs.h (nonexistent_path): Add
46         random number to the path.
47
48 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
49
50         * include/experimental/internet (address_v6::to_string): Include
51         scope ID in string.
52         * testsuite/experimental/net/internet/address/v6/members.cc:
53         Test to_string() results.
54
55 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
56
57         * include/experimental/internet (address_v6::any): Avoid using
58         memcpy in constexpr function.
59         (address_v6::loopback): Likewise.
60         (make_address_v6): Fix missing return statements on error paths.
61         * include/experimental/io_context: Avoid -Wdangling-else
62         warning.
63         * testsuite/experimental/net/internet/address/v4/members.cc:
64         Remove unused variables.
65         * testsuite/experimental/net/internet/address/v6/members.cc:
66         New test.
67
68 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
69
70         * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
71         Add unused attribute to parameter.
72         * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
73         Likewise.
74
75 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
76
77         * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
78         if -fno-rtti is used.
79         * testsuite/30_threads/async/forced_unwind.cc: Expect test
80         to abort if -fno-rtti is used.
81
82 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
83
84         * testsuite/util/testsuite_allocator.h (memory_resource):
85         Remove requirement for RTTI and exceptions to be enabled.
86
87 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
88
89         * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
90         static_cast when RTTI is disabled.
91         * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
92         Likewise.
93         * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
94         Likewise.
95         * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
96         Likewise.
97         * testsuite/27_io/basic_stringstream/str/char/2.cc:
98         Likewise.
99         * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
100         Likewise.
101
102 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
103
104         * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
105         as unused and only use dynamic_cast when RTTI is enabled.
106
107 2021-02-12  Jonathan Wakely  <jwakely@redhat.com>
108
109         PR libstdc++/99077
110         * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
111         Change int parameter to error_code, to match std::ios_failure.
112         (__throw_ios_failure(const char*, int)): Construct error_code
113         from int parameter.
114
115 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
116
117         * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
118         new macro.
119         * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
120         macro instead of _GLIBCXX_EH_PTR_COMPAT.
121         (operator==): Likewise.
122
123 2021-02-11  Jonathan Wakely  <jwakely@redhat.com>
124
125         PR libstdc++/99058
126         * doc/xml/manual/status_cxx2011.xml: Document when support
127         became stable.
128         * doc/xml/manual/status_cxx2014.xml: Likewise.
129         * doc/xml/manual/status_cxx2017.xml: Likewise.
130         * doc/html/manual/status.html: Regenerate.
131
132 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
133
134         PR libstdc++/88881
135         * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
136
137 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
138
139         * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
140         (fs::remove): Use std::system_category() for error codes from
141         GetLastError().
142         * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
143         Likewise.
144
145 2021-02-10  Jonathan Wakely  <jwakely@redhat.com>
146
147         * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
148         in __MINGW32__ macro name.
149         * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
150         * testsuite/27_io/filesystem/path/generation/proximate.cc:
151         Likewise.
152         * testsuite/27_io/filesystem/path/generation/relative.cc:
153         Likewise.
154         * testsuite/util/testsuite_fs.h: Likewise.
155
156 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
157
158         * include/bits/stl_tree.h
159         (__has_is_transparent, __has_is_transparent_t): Move...
160         * include/bits/stl_function.h: ...here.
161         * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
162         (_Hashtable_base<>::_M_equals_tr): New.
163         * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
164         _Hashtable<>::_M_equal_range_tr): New member function templates to perform
165         heterogeneous lookup.
166         (_Hashtable<>::_M_find_before_node_tr): New.
167         (_Hashtable<>::_M_find_node_tr): New.
168         * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
169         unordered_map::contains<>, unordered_map::equal_range<>): New member function
170         templates to perform heterogeneous lookup.
171         (unordered_multimap::find<>, unordered_multimap::count<>,
172         unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
173         * include/bits/unordered_set.h  (unordered_set::find<>, unordered_set::count<>,
174         unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
175         (unordered_multiset::find<>, unordered_multiset::count<>,
176         unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
177         * include/debug/unordered_map
178         (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
179         (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
180         * include/debug/unordered_set
181         (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
182         (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
183         * testsuite/23_containers/unordered_map/operations/1.cc: New test.
184         * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
185         * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
186         * testsuite/23_containers/unordered_set/operations/1.cc: New test.
187
188 2021-02-09  François Dumont  <fdumont@gcc.gnu.org>
189
190         * include/bits/stl_deque.h
191         (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
192         a null pointer test.
193
194 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
195
196         * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
197         test directory after making it writable again.
198         * testsuite/experimental/filesystem/operations/remove_all.cc:
199         Likewise.
200
201 2021-02-09  Jonathan Wakely  <jwakely@redhat.com>
202
203         PR libstdc++/99021
204         * include/std/coroutine (coroutine_handle<P>::from_address): Add
205         noexcept.
206
207 2021-02-09  Vladimir Vishnevsky  <vv.os.swe@gmail.com>
208
209         * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
210         * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
211
212 2021-02-09  Jakub Jelinek  <jakub@redhat.com>
213
214         PR middle-end/98465
215         * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
216         points to the characters moved by earlier _S_move, compute the source
217         address using expression based on the __p pointer rather than __s
218         pointer.
219
220 2021-02-03  Jonathan Wakely  <jwakely@redhat.com>
221
222         * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
223         Add comparison with same category and different values.
224         * testsuite/19_diagnostics/error_code/operators/less.cc:
225         Likewise. Fix comparison involving different categories.
226         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
227         Likewise.
228         * testsuite/19_diagnostics/error_condition/operators/less.cc:
229         Add comment.
230         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
231         Likewise.
232
233 2021-02-03  yaozhongxiao  <yaozhongxiao@linux.alibaba.com>
234
235         * include/experimental/bits/simd_neon.h: Replace repeated vpadd
236         calls with a single vaddv for aarch64.
237
238 2021-02-03  Matthias Kretz  <kretz@kde.org>
239
240         * testsuite/Makefile.am: Warn about the workaround. Add
241         -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
242         Improve initial user feedback from make check-simd.
243         * testsuite/Makefile.in: Regenerated.
244
245 2021-02-03  Matthias Kretz  <kretz@kde.org>
246
247         * include/experimental/bits/simd.h: Add __detail::_Minimum and
248         __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
249         Add hmin and hmax overloads for simd and const_where_expression.
250         * include/experimental/bits/simd_scalar.h
251         (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
252         parameter const-ref to allow calling _S_reduce with an rvalue.
253         * testsuite/experimental/simd/tests/reductions.cc: Add tests for
254         hmin and hmax. Since the compiler statically determined that all
255         tests pass, repeat the test after a call to make_value_unknown.
256
257 2021-02-03  Matthias Kretz  <kretz@kde.org>
258
259         * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
260         instruction pointer data member. Ensure that the `if (m_failed)`
261         branch is always inlined into the calling code. The body of the
262         conditional can still be a function call. Move the get_ip call
263         into the verify ctor to simplify the ctor calls.
264         (COMPARE): Don't mention the use of all_of for reduction of a
265         simd_mask. It only distracts from the real issue.
266
267 2021-02-03  Matthias Kretz  <kretz@kde.org>
268
269         * testsuite/experimental/simd/driver.sh: Abstract reading test
270         options into read_src_option function. Read skip, only,
271         expensive, and xfail via read_src_option. Add timeout and
272         timeout-factor options and adjust timeout variable accordingly.
273         * testsuite/experimental/simd/tests/loadstore.cc: Set
274         timeout-factor 2.
275
276 2021-02-03  Matthias Kretz  <kretz@kde.org>
277
278         * testsuite/experimental/simd/driver.sh: When handling the pipe
279         to log (and on verbose to stdout) count the lines. If it exceeds
280         1000 log the issue and exit 125, which is then handled as a
281         failure.
282
283 2021-02-03  Matthias Kretz  <kretz@kde.org>
284
285         * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
286         markup for long double on powerpc64*.
287
288 2021-02-03  Matthias Kretz  <kretz@kde.org>
289
290         * include/experimental/bits/simd.h: Add __have_power10vec
291         conditional on _ARCH_PWR10.
292         * include/experimental/bits/simd_builtin.h: Forward declare
293         _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
294         defined.
295         (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
296         _SuperImpl for optimizations and correctness.
297         * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
298         (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
299         Otherwise, for >=int use -vec_sums divided by a sizeof factor.
300         For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
301
302 2021-02-03  Matthias Kretz  <kretz@kde.org>
303
304         * testsuite/experimental/simd/driver.sh: Remove executable on
305         SIGINT. Process compiler and test executable output: In verbose
306         mode print messages immediately, limited to 1000 lines and
307         breaking long lines to below $COLUMNS (or 1024 if not set).
308         Communicating the exit status of the compiler / test with the
309         necessary pipe is done via a message through stdout/-in.
310
311 2021-02-03  Matthias Kretz  <kretz@kde.org>
312
313         * testsuite/Makefile.am: Ensure .simd.summary is empty before
314         collecting a new summary.
315         * testsuite/Makefile.in: Regenerate.
316
317 2021-02-03  Matthias Kretz  <kretz@kde.org>
318
319         * testsuite/experimental/simd/generate_makefile.sh: Use
320         different variables internally than documented for user
321         overrides. This makes internal append/prepend work as intended.
322
323 2021-02-03  Matthias Kretz  <kretz@kde.org>
324
325         * testsuite/experimental/simd/driver.sh (verify_test): Print
326         test output on run xfail. Do not repeat lines from the log that
327         were already printed on stdout.
328         (test_selector): Make the compiler flags pattern usable as a
329         substring selector.
330         (toplevel): Trap on SIGINT and remove the log and sum files.
331         Call timout with --foreground to quickly terminate on SIGINT.
332         * testsuite/experimental/simd/generate_makefile.sh: Simplify run
333         targets via target patterns. Default DRIVEROPTS to -v for run
334         targets. Remove log and sum files after completion of the run
335         target (so that it's always recompiled).
336         Place help text into text file for reasonable 'make help'
337         performance.
338
339 2021-02-03  Matthias Kretz  <kretz@kde.org>
340
341         * include/experimental/bits/simd.h: Remove unnecessary static
342         assertion. Allow sizeof(8) integer __intrinsic_type to enable
343         the necessary mask type.
344
345 2021-02-03  Matthias Kretz  <kretz@kde.org>
346
347         * include/experimental/bits/simd.h: Let __intrinsic_type<long
348         double, N> be valid if sizeof(long double) == sizeof(double) and
349         use a __vector double as member type.
350
351 2021-02-03  Matthias Kretz  <kretz@kde.org>
352
353         * include/experimental/bits/simd.h (__is_intrinsic_type): New
354         internal type trait. Alias for __is_vector_type on x86.
355         (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
356         __vector_type.
357         (__intrin_bitcast): Allow casting to & from vector & intrinsic
358         types.
359         (__intrinsic_type): Explicitly specialize for NEON intrinsic
360         vector types.
361
362 2021-02-03  Matthias Kretz  <kretz@kde.org>
363
364         * testsuite/experimental/simd/driver.sh: Implement skip, only,
365         expensive, and xfail markers. They can select on type, ABI tag
366         subset number, target-triplet, and compiler flags.
367         * testsuite/experimental/simd/generate_makefile.sh: The summary
368         now includes lines for unexpected passes and expected failures.
369         If the skip or only markers are only conditional on the type, do
370         not generate rules for those types.
371         * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
372         for ABI tag subsets 1-9.
373         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
374         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
375         * testsuite/experimental/simd/tests/casts.cc: Ditto.
376         * testsuite/experimental/simd/tests/generator.cc: Ditto.
377         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
378         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
379         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
380         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
381         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
382         * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
383         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
384         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
385         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
386         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
387         * testsuite/experimental/simd/tests/operators.cc: Ditto.
388         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
389         * testsuite/experimental/simd/tests/simd.cc: Ditto.
390         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
391         * testsuite/experimental/simd/tests/splits.cc: Ditto.
392         * testsuite/experimental/simd/tests/where.cc: Ditto.
393         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
394         addition replace "test only floattypes" marker by unconditional
395         "float|double|ldouble" only marker.
396         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
397         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
398         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
399         Ditto.
400         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
401         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
402         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
403         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
404         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
405         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
406         * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
407         addition, xfail on run because the reference data is missing.
408
409 2021-02-02  Jonathan Wakely  <jwakely@redhat.com>
410
411         * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
412         * doc/xml/manual/status_cxx2014.xml: Likewise.
413         * doc/xml/manual/status_cxx2017.xml: Likewise.
414         * doc/html/manual/status.html: Regenerate.
415
416 2021-02-01  François Dumont  <fdumont@gcc.gnu.org>
417
418         PR libstdc++/70303
419         * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
420         Return 0 if both iterators are value-initialized.
421         * testsuite/23_containers/deque/70303.cc: New test.
422         * testsuite/23_containers/vector/70303.cc: New test.
423
424 2021-02-01  Jonathan Wakely  <jwakely@redhat.com>
425
426         * doc/xml/manual/status_cxx2011.xml: Update std::call_once
427         status.
428         * doc/xml/manual/status_cxx2014.xml: Likewise.
429         * doc/xml/manual/status_cxx2017.xml: Likewise. Update
430         std::from_chars and std::to_chars status. Fix formatting.
431         * doc/html/manual/status.html: Regenerate.
432
433 2021-01-28  Jonathan Wakely  <jwakely@redhat.com>
434
435         * include/experimental/bits/numeric_traits.h: Update copyright
436         dates.
437         * include/experimental/bits/simd.h: Likewise.
438         * include/experimental/bits/simd_builtin.h: Likewise.
439         * include/experimental/bits/simd_converter.h: Likewise.
440         * include/experimental/bits/simd_detail.h: Likewise.
441         * include/experimental/bits/simd_fixed_size.h: Likewise.
442         * include/experimental/bits/simd_math.h: Likewise.
443         * include/experimental/bits/simd_neon.h: Likewise.
444         * include/experimental/bits/simd_ppc.h: Likewise.
445         * include/experimental/bits/simd_scalar.h: Likewise.
446         * include/experimental/bits/simd_x86.h: Likewise.
447         * include/experimental/bits/simd_x86_conversions.h: Likewise.
448         * include/experimental/simd: Likewise.
449         * testsuite/experimental/simd/*: Likewise.
450
451 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
452
453         * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
454         * doc/html/*: Regenerate.
455
456 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
457
458         * testsuite/experimental/simd/generate_makefile.sh: Use printf
459         instead of echo when printing escape characters.
460
461 2021-01-27  Matthias Kretz  <kretz@kde.org>
462
463         * scripts/check_simd: New file. This script is called from the
464         the check-simd target. It determines a set of compiler flags and
465         simulator setups for calling generate_makefile.sh and passes the
466         information back to the check-simd target, which recurses to the
467         generated Makefiles.
468         * scripts/create_testsuite_files: Remove files below simd/tests/
469         from testsuite_files and place them in testsuite_files_simd.
470         * testsuite/Makefile.am: Add testsuite_files_simd. Add
471         check-simd target.
472         * testsuite/Makefile.in: Regenerate.
473         * testsuite/experimental/simd/driver.sh: New file. This script
474         compiles and runs a given simd test, logging its output and
475         status. It uses the timeout command to implement compile and
476         test timeouts.
477         * testsuite/experimental/simd/generate_makefile.sh: New file.
478         This script generates a Makefile which uses driver.sh to compile
479         and run the tests and collect the logs into a single log file.
480         * testsuite/experimental/simd/tests/abs.cc: New file. Tests
481         abs(simd).
482         * testsuite/experimental/simd/tests/algorithms.cc: New file.
483         Tests min/max(simd, simd).
484         * testsuite/experimental/simd/tests/bits/conversions.h: New
485         file. Contains functions to support tests involving conversions.
486         * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
487         Support functions make_mask and make_vec.
488         * testsuite/experimental/simd/tests/bits/mathreference.h: New
489         file. Support functions to supply precomputed math function
490         reference data.
491         * testsuite/experimental/simd/tests/bits/metahelpers.h: New
492         file. Support code for SFINAE testing.
493         * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
494         * testsuite/experimental/simd/tests/bits/test_values.h: New
495         file. Test functions to easily drive a test with simd objects
496         initialized from a given list of values and a range of random
497         values.
498         * testsuite/experimental/simd/tests/bits/ulp.h: New file.
499         Support code to determine the ULP distance of simd objects.
500         * testsuite/experimental/simd/tests/bits/verify.h: New file.
501         Test framework for COMPARE'ing simd objects and instantiating
502         the test templates with value_type and ABI tag.
503         * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
504         simd broadcasts.
505         * testsuite/experimental/simd/tests/casts.cc: New file. Test
506         simd casts.
507         * testsuite/experimental/simd/tests/fpclassify.cc: New file.
508         Test floating-point classification functions.
509         * testsuite/experimental/simd/tests/frexp.cc: New file. Test
510         frexp(simd).
511         * testsuite/experimental/simd/tests/generator.cc: New file. Test
512         simd generator constructor.
513         * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
514         Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
515         * testsuite/experimental/simd/tests/integer_operators.cc: New
516         file. Test integer operators.
517         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
518         New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
519         modf(simd).
520         * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
521         (converting) simd loads and stores.
522         * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
523         log*(simd).
524         * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
525         Test simd_mask broadcasts.
526         * testsuite/experimental/simd/tests/mask_conversions.cc: New
527         file. Test simd_mask conversions.
528         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
529         file. Test simd_mask implicit conversions.
530         * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
531         Test simd_mask loads and stores.
532         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
533         file. Test simd_mask operators convert as specified.
534         * testsuite/experimental/simd/tests/mask_operators.cc: New file.
535         Test simd_mask compares, subscripts, and negation.
536         * testsuite/experimental/simd/tests/mask_reductions.cc: New
537         file. Test simd_mask reductions.
538         * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
539         1-arg math functions on simd.
540         * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
541         2-arg math functions on simd.
542         * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
543         Test implicit conversions on simd binary operators behave as
544         specified.
545         * testsuite/experimental/simd/tests/operators.cc: New file. Test
546         simd compares, subscripts, not, unary minus, plus, minus,
547         multiplies, divides, increment, and decrement.
548         * testsuite/experimental/simd/tests/reductions.cc: New file.
549         Test reduce(simd).
550         * testsuite/experimental/simd/tests/remqo.cc: New file. Test
551         remqo(simd).
552         * testsuite/experimental/simd/tests/simd.cc: New file. Basic
553         sanity checks of simd types.
554         * testsuite/experimental/simd/tests/sincos.cc: New file. Test
555         sin(simd) and cos(simd).
556         * testsuite/experimental/simd/tests/split_concat.cc: New file.
557         Test split(simd) and concat(simd, simd).
558         * testsuite/experimental/simd/tests/splits.cc: New file. Test
559         split(simd_mask).
560         * testsuite/experimental/simd/tests/trigonometric.cc: New file.
561         Test remaining trigonometric functions on simd.
562         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
563         file. Test trunc(simd), ceil(simd), and floor(simd).
564         * testsuite/experimental/simd/tests/where.cc: New file. Test
565         masked operations using where.
566
567 2021-01-27  Matthias Kretz  <kretz@kde.org>
568
569         * doc/xml/manual/status_cxx2017.xml: Add implementation status
570         of the Parallelism TS 2. Document implementation-defined types
571         and behavior.
572         * include/Makefile.am: Add new headers.
573         * include/Makefile.in: Regenerate.
574         * include/experimental/simd: New file. New header for
575         Parallelism TS 2.
576         * include/experimental/bits/numeric_traits.h: New file.
577         Implementation of P1841R1 using internal naming. Addition of
578         missing IEC559 functionality query.
579         * include/experimental/bits/simd.h: New file. Definition of the
580         public simd interfaces and general implementation helpers.
581         * include/experimental/bits/simd_builtin.h: New file.
582         Implementation of the _VecBuiltin simd_abi.
583         * include/experimental/bits/simd_converter.h: New file. Generic
584         simd conversions.
585         * include/experimental/bits/simd_detail.h: New file. Internal
586         macros for the simd implementation.
587         * include/experimental/bits/simd_fixed_size.h: New file. Simd
588         fixed_size ABI specific implementations.
589         * include/experimental/bits/simd_math.h: New file. Math
590         overloads for simd.
591         * include/experimental/bits/simd_neon.h: New file. Simd NEON
592         specific implementations.
593         * include/experimental/bits/simd_ppc.h: New file. Implement bit
594         shifts to avoid invalid results for integral types smaller than
595         int.
596         * include/experimental/bits/simd_scalar.h: New file. Simd scalar
597         ABI specific implementations.
598         * include/experimental/bits/simd_x86.h: New file. Simd x86
599         specific implementations.
600         * include/experimental/bits/simd_x86_conversions.h: New file.
601         x86 specific conversion optimizations. The conversion patterns
602         work around missing conversion patterns in the compiler and
603         should be removed as soon as PR85048 is resolved.
604         * testsuite/experimental/simd/standard_abi_usable.cc: New file.
605         Test that all (not all fixed_size<N>, though) standard simd and
606         simd_mask types are usable.
607         * testsuite/experimental/simd/standard_abi_usable_2.cc: New
608         file. As above but with -ffast-math.
609         * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
610         from the standard test loop. Instead use
611         check_vect_support_and_set_flags to build simd tests with the
612         relevant machine flags.
613
614 2021-01-27  Jonathan Wakely  <jwakely@redhat.com>
615
616         PR libstdc++/66414
617         * include/bits/string_view.tcc
618         (basic_string_view::find(const CharT*, size_type, size_type)):
619         Optimize.
620
621 2021-01-27  Paul Fee  <paul.f.fee@gmail.com>
622
623         * include/bits/basic_string.h (basic_string::contains): New
624         member functions.
625         * include/std/string_view (basic_string_view::contains):
626         Likewise.
627         * include/std/version (__cpp_lib_string_contains): Define.
628         * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
629         Remove trailing whitespace.
630         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
631         Likewise.
632         * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
633         * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
634         * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
635         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
636         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
637
638 2021-01-21  Jonathan Wakely  <jwakely@redhat.com>
639
640         * src/c++17/Makefile.in: Regenerate.
641
642 2021-01-20  David Edelsohn  <dje.gcc@gmail.com>
643
644         * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
645         _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
646         __lc_type.
647         (const char* ctype<char>:: is): Same.
648
649 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
650
651         PR libstdc++/98725
652         * testsuite/20_util/unique_ptr/io/lwg2948.cc:  Do not try to
653         write to a wide character stream if wide character support is
654         disabled in the library.
655
656 2021-01-18  Jonathan Wakely  <jwakely@redhat.com>
657
658         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
659         stringbuf not wstringbuf.
660
661 2021-01-18  Jakub Jelinek  <jakub@redhat.com>
662
663         PR debug/98708
664         * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
665         Compile with -gno-as-loc-support.
666         * src/c++11/Makefile.in: Regenerated.
667
668 2021-01-16  H.J. Lu  <hjl.tools@gmail.com>
669
670         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
671         Add -fcf-protection=none to -march=i486.
672
673 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
674
675         * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
676         compliant.
677
678 2021-01-14  Alexandre Oliva  <oliva@adacore.com>
679
680         * testsuite/30_threads/future/members/poll.cc: Calibrate
681         iteration count.
682
683 2021-01-14  François Dumont  <fdumont@gcc.gnu.org>
684
685         PR libstdc++/98466
686         * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
687         (_Node_iterator()): Make default.
688         (_Node_const_iterator()): Make default.
689         * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
690         iterator checks.
691         * include/debug/safe_iterator.h
692         (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
693         * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
694         Likewise.
695         * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
696         _M_singular checks on input iterators.
697         * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
698         checks.
699         * testsuite/23_containers/deque/debug/98466.cc: New test.
700         * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
701
702 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
703
704         PR libstdc++/98471
705         * include/bits/fs_path.h (__throw_conversion_error): New
706         function to throw or abort on character conversion errors.
707         (__wstr_from_utf8): Move definition after filesystem_error has
708         been defined. Use __throw_conversion_error.
709         (path::_S_convert<_EcharT>): Use __throw_conversion_error.
710         (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
711         (path::u8string): Likewise.
712
713 2021-01-14  Jonathan Wakely  <jwakely@redhat.com>
714
715         * include/std/barrier: Update copyright years. Fix whitespace.
716         * include/std/version: Fix whitespace.
717         * testsuite/30_threads/barrier/1.cc: Update copyright years.
718         * testsuite/30_threads/barrier/2.cc: Likewise.
719         * testsuite/30_threads/barrier/arrive.cc: Likewise.
720         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
721         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
722         * testsuite/30_threads/barrier/completion.cc: Likewise.
723
724 2021-01-13  Jonathan Wakely  <jwakely@redhat.com>
725
726         * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
727
728 2021-01-10  David Edelsohn  <dje.gcc@gmail.com>
729
730         PR libstdc++/98613
731         * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
732         warning.
733         * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
734
735 2021-01-08  Olivier Hainque  <hainque@adacore.com>
736
737         * testsuite/20_util/bind/ref_neg.cc: Tweak the
738         dg-prune-output regex for out-of-build-tree contexts.
739
740 2021-01-07  Thomas Rodgers  <trodgers@redhat.com>
741
742         * doc/doxygen/user.cfg.in: Add new header.
743         * include/Makefile.am (std_headers): likewise.
744         * include/Makefile.in: Regenerate.
745         * include/precompiled/stdc++.h: Add new header.
746         * include/std/barrier: New file.
747         * include/std/version: Add __cpp_lib_barrier feature test macro.
748         * testsuite/30_threads/barrier/1.cc: New test.
749         * testsuite/30_threads/barrier/2.cc: Likewise.
750         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
751         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
752         * testsuite/30_threads/barrier/arrive.cc: Likewise.
753         * testsuite/30_threads/barrier/completion.cc: Likewise.
754
755 2021-01-07  Patrick Palka  <ppalka@redhat.com>
756
757         PR libstdc++/98384
758         * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
759         instead of the non-standard nextupl and nextdownl.
760
761 2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
762
763         * configure: Re-generate.
764
765 2021-01-05  Ed Smith-Rowland  <3dw4rd@verizon.net>
766
767         * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
768
769 2021-01-01  Jakub Jelinek  <jakub@redhat.com>
770
771         * ChangeLog-2020: Rotate ChangeLog.  New file.
772
773 \f
774 Copyright (C) 2021 Free Software Foundation, Inc.
775
776 Copying and distribution of this file, with or without modification,
777 are permitted in any medium without royalty provided the copyright
778 notice and this notice are preserved.