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