1 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
4 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5 Make storage larger than required. Verify no write to the last
7 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
10 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
13 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
15 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
16 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
19 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21 * include/experimental/bits/simd.h: Replace reserved _X, _B by
23 * include/experimental/bits/simd_builtin.h: Likewise.
24 * include/experimental/bits/simd_x86.h: Likewise.
26 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
29 * include/std/chrono (year_month_day::_M_days_since_epoch()):
30 Convert chrono::month and chrono::day to unsigned before
31 converting to uint32_t.
33 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
35 * include/std/chrono (year_month_day::_S_from_days): Perform
36 all calculations with type uint32_t.
38 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
40 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
41 * doc/html/manual/abi.html: Regenerate.
43 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
46 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
49 2021-02-25 Andreas Schwab <schwab@suse.de>
51 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
52 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
53 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
54 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
56 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
59 * include/std/chrono (year_month_day::_S_from_days): Cast long
62 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
64 * include/std/utility (to_underlying): Define.
65 * include/std/version (__cpp_lib_to_underlying): Define.
66 * testsuite/20_util/to_underlying/1.cc: New test.
67 * testsuite/20_util/to_underlying/version.cc: New test.
69 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
72 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
73 before value to be printed.
75 2021-02-24 Patrick Palka <ppalka@redhat.com>
77 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
78 Relax the condition that guards the printf code path to accept
79 F128_type as well as long double.
81 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
83 * include/std/chrono (year_month_day_last:day): New
86 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
88 * include/std/chrono (year::is_leap): New implementation.
89 * testsuite/std/time/year/2.cc: New test.
91 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
93 * include/std/chrono (year_month_day::_M_days_since_epoch):
95 * testsuite/std/time/year_month_day/4.cc: New test.
97 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
99 * include/std/chrono (year_month_day::_S_from_days): New
101 * testsuite/std/time/year_month_day/3.cc: New test.
103 2021-02-24 Patrick Palka <ppalka@redhat.com>
106 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
107 (test01): Simplify verifying the nearby values by using a
108 2-iteration loop and a dedicated output buffer to check that the
109 nearby values are different. Factor out the printf-based
110 verification into a local function, and check that the leading
111 hex digits agree before comparing to the output of printf. Also
112 verify the output by round-tripping it through from_chars.
114 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
117 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
118 symbols for long double arguments mangled as 'g'.
119 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
120 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
121 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
122 Use -mabi=ibmlongdouble for floating_to_chars.cc.
123 * src/c++17/Makefile.in: Regenerate.
124 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
125 New type defining type traits of IEEE binary128 format.
126 (floating_type_traits<__float128>): Define specialization.
127 (floating_type_traits<long double>): Define in terms of
128 floating_type_traits_binary128 when appropriate.
129 (floating_to_shortest_scientific): Handle __float128.
130 (sprintf_ld): New function template for printing a long double
131 or __ieee128 value using sprintf.
132 (__floating_to_chars_shortest, __floating_to_chars_precision):
134 (to_chars): Define overloads for __float128.
136 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
138 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
140 2021-02-23 Martin Sebor <msebor@redhat.com>
143 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
144 first argument is null.
146 2021-02-23 Jakub Jelinek <jakub@redhat.com>
149 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
152 2021-02-23 Jakub Jelinek <jakub@redhat.com>
155 * include/bits/char_traits.h (char_traits<char>::compare): For
156 constexpr evaluation don't call
157 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
160 2021-02-23 Jakub Jelinek <jakub@redhat.com>
163 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
165 2021-02-23 Patrick Palka <ppalka@redhat.com>
168 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
169 the high- and low-order parts from an IBM long double value
170 in an endian-agnostic way.
172 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
174 * include/bits/atomic_wait.h (__thread_relax()): Call
175 __thread_yield() not __gthread_yield().
177 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/atomic_wait.h (__thread_yield()): Check
180 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
181 (__thread_relax()): Use __thread_yield() instead of repeating
182 the preprocessor checks for __gthread_yield.
184 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
186 * include/std/mutex (once_flag::_M_activate()): Add explicit
187 return statement for passive case.
188 (once_flag::_M_finish(bool)): Use reserved name for parameter.
190 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
193 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
195 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
198 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
200 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
202 * doc/xml/manual/status_cxx2014.xml: Document implementation
203 specific properties of std::experimental::filesystem::rename.
204 * doc/xml/manual/status_cxx2017.xml: Document implementation
205 specific properties of std::filesystem::rename.
206 * doc/html/*: Regenerate.
207 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
208 for directories on Windows.
209 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
210 MoveFileExW on Windows.
211 * testsuite/27_io/filesystem/operations/rename.cc: New test.
212 * testsuite/experimental/filesystem/operations/rename.cc: New test.
214 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
216 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
217 random number to the path.
219 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
221 * include/experimental/internet (address_v6::to_string): Include
223 * testsuite/experimental/net/internet/address/v6/members.cc:
224 Test to_string() results.
226 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
228 * include/experimental/internet (address_v6::any): Avoid using
229 memcpy in constexpr function.
230 (address_v6::loopback): Likewise.
231 (make_address_v6): Fix missing return statements on error paths.
232 * include/experimental/io_context: Avoid -Wdangling-else
234 * testsuite/experimental/net/internet/address/v4/members.cc:
235 Remove unused variables.
236 * testsuite/experimental/net/internet/address/v6/members.cc:
239 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
241 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
242 Add unused attribute to parameter.
243 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
246 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
248 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
249 if -fno-rtti is used.
250 * testsuite/30_threads/async/forced_unwind.cc: Expect test
251 to abort if -fno-rtti is used.
253 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
255 * testsuite/util/testsuite_allocator.h (memory_resource):
256 Remove requirement for RTTI and exceptions to be enabled.
258 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
260 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
261 static_cast when RTTI is disabled.
262 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
264 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
266 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
268 * testsuite/27_io/basic_stringstream/str/char/2.cc:
270 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
273 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
275 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
276 as unused and only use dynamic_cast when RTTI is enabled.
278 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
281 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
282 Change int parameter to error_code, to match std::ios_failure.
283 (__throw_ios_failure(const char*, int)): Construct error_code
286 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
288 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
290 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
291 macro instead of _GLIBCXX_EH_PTR_COMPAT.
292 (operator==): Likewise.
294 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
297 * doc/xml/manual/status_cxx2011.xml: Document when support
299 * doc/xml/manual/status_cxx2014.xml: Likewise.
300 * doc/xml/manual/status_cxx2017.xml: Likewise.
301 * doc/html/manual/status.html: Regenerate.
303 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
306 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
308 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
310 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
311 (fs::remove): Use std::system_category() for error codes from
313 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
316 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
318 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
319 in __MINGW32__ macro name.
320 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
321 * testsuite/27_io/filesystem/path/generation/proximate.cc:
323 * testsuite/27_io/filesystem/path/generation/relative.cc:
325 * testsuite/util/testsuite_fs.h: Likewise.
327 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
329 * include/bits/stl_tree.h
330 (__has_is_transparent, __has_is_transparent_t): Move...
331 * include/bits/stl_function.h: ...here.
332 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
333 (_Hashtable_base<>::_M_equals_tr): New.
334 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
335 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
336 heterogeneous lookup.
337 (_Hashtable<>::_M_find_before_node_tr): New.
338 (_Hashtable<>::_M_find_node_tr): New.
339 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
340 unordered_map::contains<>, unordered_map::equal_range<>): New member function
341 templates to perform heterogeneous lookup.
342 (unordered_multimap::find<>, unordered_multimap::count<>,
343 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
344 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
345 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
346 (unordered_multiset::find<>, unordered_multiset::count<>,
347 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
348 * include/debug/unordered_map
349 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
350 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
351 * include/debug/unordered_set
352 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
353 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
354 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
355 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
356 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
357 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
359 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
361 * include/bits/stl_deque.h
362 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
365 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
367 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
368 test directory after making it writable again.
369 * testsuite/experimental/filesystem/operations/remove_all.cc:
372 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
375 * include/std/coroutine (coroutine_handle<P>::from_address): Add
378 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
380 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
381 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
383 2021-02-09 Jakub Jelinek <jakub@redhat.com>
386 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
387 points to the characters moved by earlier _S_move, compute the source
388 address using expression based on the __p pointer rather than __s
391 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
393 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
394 Add comparison with same category and different values.
395 * testsuite/19_diagnostics/error_code/operators/less.cc:
396 Likewise. Fix comparison involving different categories.
397 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
399 * testsuite/19_diagnostics/error_condition/operators/less.cc:
401 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
404 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
406 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
407 calls with a single vaddv for aarch64.
409 2021-02-03 Matthias Kretz <kretz@kde.org>
411 * testsuite/Makefile.am: Warn about the workaround. Add
412 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
413 Improve initial user feedback from make check-simd.
414 * testsuite/Makefile.in: Regenerated.
416 2021-02-03 Matthias Kretz <kretz@kde.org>
418 * include/experimental/bits/simd.h: Add __detail::_Minimum and
419 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
420 Add hmin and hmax overloads for simd and const_where_expression.
421 * include/experimental/bits/simd_scalar.h
422 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
423 parameter const-ref to allow calling _S_reduce with an rvalue.
424 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
425 hmin and hmax. Since the compiler statically determined that all
426 tests pass, repeat the test after a call to make_value_unknown.
428 2021-02-03 Matthias Kretz <kretz@kde.org>
430 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
431 instruction pointer data member. Ensure that the `if (m_failed)`
432 branch is always inlined into the calling code. The body of the
433 conditional can still be a function call. Move the get_ip call
434 into the verify ctor to simplify the ctor calls.
435 (COMPARE): Don't mention the use of all_of for reduction of a
436 simd_mask. It only distracts from the real issue.
438 2021-02-03 Matthias Kretz <kretz@kde.org>
440 * testsuite/experimental/simd/driver.sh: Abstract reading test
441 options into read_src_option function. Read skip, only,
442 expensive, and xfail via read_src_option. Add timeout and
443 timeout-factor options and adjust timeout variable accordingly.
444 * testsuite/experimental/simd/tests/loadstore.cc: Set
447 2021-02-03 Matthias Kretz <kretz@kde.org>
449 * testsuite/experimental/simd/driver.sh: When handling the pipe
450 to log (and on verbose to stdout) count the lines. If it exceeds
451 1000 log the issue and exit 125, which is then handled as a
454 2021-02-03 Matthias Kretz <kretz@kde.org>
456 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
457 markup for long double on powerpc64*.
459 2021-02-03 Matthias Kretz <kretz@kde.org>
461 * include/experimental/bits/simd.h: Add __have_power10vec
462 conditional on _ARCH_PWR10.
463 * include/experimental/bits/simd_builtin.h: Forward declare
464 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
466 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
467 _SuperImpl for optimizations and correctness.
468 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
469 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
470 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
471 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
473 2021-02-03 Matthias Kretz <kretz@kde.org>
475 * testsuite/experimental/simd/driver.sh: Remove executable on
476 SIGINT. Process compiler and test executable output: In verbose
477 mode print messages immediately, limited to 1000 lines and
478 breaking long lines to below $COLUMNS (or 1024 if not set).
479 Communicating the exit status of the compiler / test with the
480 necessary pipe is done via a message through stdout/-in.
482 2021-02-03 Matthias Kretz <kretz@kde.org>
484 * testsuite/Makefile.am: Ensure .simd.summary is empty before
485 collecting a new summary.
486 * testsuite/Makefile.in: Regenerate.
488 2021-02-03 Matthias Kretz <kretz@kde.org>
490 * testsuite/experimental/simd/generate_makefile.sh: Use
491 different variables internally than documented for user
492 overrides. This makes internal append/prepend work as intended.
494 2021-02-03 Matthias Kretz <kretz@kde.org>
496 * testsuite/experimental/simd/driver.sh (verify_test): Print
497 test output on run xfail. Do not repeat lines from the log that
498 were already printed on stdout.
499 (test_selector): Make the compiler flags pattern usable as a
501 (toplevel): Trap on SIGINT and remove the log and sum files.
502 Call timout with --foreground to quickly terminate on SIGINT.
503 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
504 targets via target patterns. Default DRIVEROPTS to -v for run
505 targets. Remove log and sum files after completion of the run
506 target (so that it's always recompiled).
507 Place help text into text file for reasonable 'make help'
510 2021-02-03 Matthias Kretz <kretz@kde.org>
512 * include/experimental/bits/simd.h: Remove unnecessary static
513 assertion. Allow sizeof(8) integer __intrinsic_type to enable
514 the necessary mask type.
516 2021-02-03 Matthias Kretz <kretz@kde.org>
518 * include/experimental/bits/simd.h: Let __intrinsic_type<long
519 double, N> be valid if sizeof(long double) == sizeof(double) and
520 use a __vector double as member type.
522 2021-02-03 Matthias Kretz <kretz@kde.org>
524 * include/experimental/bits/simd.h (__is_intrinsic_type): New
525 internal type trait. Alias for __is_vector_type on x86.
526 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
528 (__intrin_bitcast): Allow casting to & from vector & intrinsic
530 (__intrinsic_type): Explicitly specialize for NEON intrinsic
533 2021-02-03 Matthias Kretz <kretz@kde.org>
535 * testsuite/experimental/simd/driver.sh: Implement skip, only,
536 expensive, and xfail markers. They can select on type, ABI tag
537 subset number, target-triplet, and compiler flags.
538 * testsuite/experimental/simd/generate_makefile.sh: The summary
539 now includes lines for unexpected passes and expected failures.
540 If the skip or only markers are only conditional on the type, do
541 not generate rules for those types.
542 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
543 for ABI tag subsets 1-9.
544 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
545 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
546 * testsuite/experimental/simd/tests/casts.cc: Ditto.
547 * testsuite/experimental/simd/tests/generator.cc: Ditto.
548 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
549 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
550 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
551 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
552 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
553 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
554 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
555 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
556 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
557 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
558 * testsuite/experimental/simd/tests/operators.cc: Ditto.
559 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
560 * testsuite/experimental/simd/tests/simd.cc: Ditto.
561 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
562 * testsuite/experimental/simd/tests/splits.cc: Ditto.
563 * testsuite/experimental/simd/tests/where.cc: Ditto.
564 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
565 addition replace "test only floattypes" marker by unconditional
566 "float|double|ldouble" only marker.
567 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
568 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
569 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
571 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
572 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
573 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
574 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
575 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
576 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
577 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
578 addition, xfail on run because the reference data is missing.
580 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
582 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
583 * doc/xml/manual/status_cxx2014.xml: Likewise.
584 * doc/xml/manual/status_cxx2017.xml: Likewise.
585 * doc/html/manual/status.html: Regenerate.
587 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
590 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
591 Return 0 if both iterators are value-initialized.
592 * testsuite/23_containers/deque/70303.cc: New test.
593 * testsuite/23_containers/vector/70303.cc: New test.
595 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
597 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
599 * doc/xml/manual/status_cxx2014.xml: Likewise.
600 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
601 std::from_chars and std::to_chars status. Fix formatting.
602 * doc/html/manual/status.html: Regenerate.
604 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
606 * include/experimental/bits/numeric_traits.h: Update copyright
608 * include/experimental/bits/simd.h: Likewise.
609 * include/experimental/bits/simd_builtin.h: Likewise.
610 * include/experimental/bits/simd_converter.h: Likewise.
611 * include/experimental/bits/simd_detail.h: Likewise.
612 * include/experimental/bits/simd_fixed_size.h: Likewise.
613 * include/experimental/bits/simd_math.h: Likewise.
614 * include/experimental/bits/simd_neon.h: Likewise.
615 * include/experimental/bits/simd_ppc.h: Likewise.
616 * include/experimental/bits/simd_scalar.h: Likewise.
617 * include/experimental/bits/simd_x86.h: Likewise.
618 * include/experimental/bits/simd_x86_conversions.h: Likewise.
619 * include/experimental/simd: Likewise.
620 * testsuite/experimental/simd/*: Likewise.
622 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
624 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
625 * doc/html/*: Regenerate.
627 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
629 * testsuite/experimental/simd/generate_makefile.sh: Use printf
630 instead of echo when printing escape characters.
632 2021-01-27 Matthias Kretz <kretz@kde.org>
634 * scripts/check_simd: New file. This script is called from the
635 the check-simd target. It determines a set of compiler flags and
636 simulator setups for calling generate_makefile.sh and passes the
637 information back to the check-simd target, which recurses to the
639 * scripts/create_testsuite_files: Remove files below simd/tests/
640 from testsuite_files and place them in testsuite_files_simd.
641 * testsuite/Makefile.am: Add testsuite_files_simd. Add
643 * testsuite/Makefile.in: Regenerate.
644 * testsuite/experimental/simd/driver.sh: New file. This script
645 compiles and runs a given simd test, logging its output and
646 status. It uses the timeout command to implement compile and
648 * testsuite/experimental/simd/generate_makefile.sh: New file.
649 This script generates a Makefile which uses driver.sh to compile
650 and run the tests and collect the logs into a single log file.
651 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
653 * testsuite/experimental/simd/tests/algorithms.cc: New file.
654 Tests min/max(simd, simd).
655 * testsuite/experimental/simd/tests/bits/conversions.h: New
656 file. Contains functions to support tests involving conversions.
657 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
658 Support functions make_mask and make_vec.
659 * testsuite/experimental/simd/tests/bits/mathreference.h: New
660 file. Support functions to supply precomputed math function
662 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
663 file. Support code for SFINAE testing.
664 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
665 * testsuite/experimental/simd/tests/bits/test_values.h: New
666 file. Test functions to easily drive a test with simd objects
667 initialized from a given list of values and a range of random
669 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
670 Support code to determine the ULP distance of simd objects.
671 * testsuite/experimental/simd/tests/bits/verify.h: New file.
672 Test framework for COMPARE'ing simd objects and instantiating
673 the test templates with value_type and ABI tag.
674 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
676 * testsuite/experimental/simd/tests/casts.cc: New file. Test
678 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
679 Test floating-point classification functions.
680 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
682 * testsuite/experimental/simd/tests/generator.cc: New file. Test
683 simd generator constructor.
684 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
685 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
686 * testsuite/experimental/simd/tests/integer_operators.cc: New
687 file. Test integer operators.
688 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
689 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
691 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
692 (converting) simd loads and stores.
693 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
695 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
696 Test simd_mask broadcasts.
697 * testsuite/experimental/simd/tests/mask_conversions.cc: New
698 file. Test simd_mask conversions.
699 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
700 file. Test simd_mask implicit conversions.
701 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
702 Test simd_mask loads and stores.
703 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
704 file. Test simd_mask operators convert as specified.
705 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
706 Test simd_mask compares, subscripts, and negation.
707 * testsuite/experimental/simd/tests/mask_reductions.cc: New
708 file. Test simd_mask reductions.
709 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
710 1-arg math functions on simd.
711 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
712 2-arg math functions on simd.
713 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
714 Test implicit conversions on simd binary operators behave as
716 * testsuite/experimental/simd/tests/operators.cc: New file. Test
717 simd compares, subscripts, not, unary minus, plus, minus,
718 multiplies, divides, increment, and decrement.
719 * testsuite/experimental/simd/tests/reductions.cc: New file.
721 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
723 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
724 sanity checks of simd types.
725 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
726 sin(simd) and cos(simd).
727 * testsuite/experimental/simd/tests/split_concat.cc: New file.
728 Test split(simd) and concat(simd, simd).
729 * testsuite/experimental/simd/tests/splits.cc: New file. Test
731 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
732 Test remaining trigonometric functions on simd.
733 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
734 file. Test trunc(simd), ceil(simd), and floor(simd).
735 * testsuite/experimental/simd/tests/where.cc: New file. Test
736 masked operations using where.
738 2021-01-27 Matthias Kretz <kretz@kde.org>
740 * doc/xml/manual/status_cxx2017.xml: Add implementation status
741 of the Parallelism TS 2. Document implementation-defined types
743 * include/Makefile.am: Add new headers.
744 * include/Makefile.in: Regenerate.
745 * include/experimental/simd: New file. New header for
747 * include/experimental/bits/numeric_traits.h: New file.
748 Implementation of P1841R1 using internal naming. Addition of
749 missing IEC559 functionality query.
750 * include/experimental/bits/simd.h: New file. Definition of the
751 public simd interfaces and general implementation helpers.
752 * include/experimental/bits/simd_builtin.h: New file.
753 Implementation of the _VecBuiltin simd_abi.
754 * include/experimental/bits/simd_converter.h: New file. Generic
756 * include/experimental/bits/simd_detail.h: New file. Internal
757 macros for the simd implementation.
758 * include/experimental/bits/simd_fixed_size.h: New file. Simd
759 fixed_size ABI specific implementations.
760 * include/experimental/bits/simd_math.h: New file. Math
762 * include/experimental/bits/simd_neon.h: New file. Simd NEON
763 specific implementations.
764 * include/experimental/bits/simd_ppc.h: New file. Implement bit
765 shifts to avoid invalid results for integral types smaller than
767 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
768 ABI specific implementations.
769 * include/experimental/bits/simd_x86.h: New file. Simd x86
770 specific implementations.
771 * include/experimental/bits/simd_x86_conversions.h: New file.
772 x86 specific conversion optimizations. The conversion patterns
773 work around missing conversion patterns in the compiler and
774 should be removed as soon as PR85048 is resolved.
775 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
776 Test that all (not all fixed_size<N>, though) standard simd and
777 simd_mask types are usable.
778 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
779 file. As above but with -ffast-math.
780 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
781 from the standard test loop. Instead use
782 check_vect_support_and_set_flags to build simd tests with the
783 relevant machine flags.
785 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
788 * include/bits/string_view.tcc
789 (basic_string_view::find(const CharT*, size_type, size_type)):
792 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
794 * include/bits/basic_string.h (basic_string::contains): New
796 * include/std/string_view (basic_string_view::contains):
798 * include/std/version (__cpp_lib_string_contains): Define.
799 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
800 Remove trailing whitespace.
801 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
803 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
804 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
805 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
806 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
807 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
809 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
811 * src/c++17/Makefile.in: Regenerate.
813 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
815 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
816 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
818 (const char* ctype<char>:: is): Same.
820 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
823 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
824 write to a wide character stream if wide character support is
825 disabled in the library.
827 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
829 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
830 stringbuf not wstringbuf.
832 2021-01-18 Jakub Jelinek <jakub@redhat.com>
835 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
836 Compile with -gno-as-loc-support.
837 * src/c++11/Makefile.in: Regenerated.
839 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
841 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
842 Add -fcf-protection=none to -march=i486.
844 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
846 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
849 2021-01-14 Alexandre Oliva <oliva@adacore.com>
851 * testsuite/30_threads/future/members/poll.cc: Calibrate
854 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
857 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
858 (_Node_iterator()): Make default.
859 (_Node_const_iterator()): Make default.
860 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
862 * include/debug/safe_iterator.h
863 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
864 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
866 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
867 _M_singular checks on input iterators.
868 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
870 * testsuite/23_containers/deque/debug/98466.cc: New test.
871 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
873 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
876 * include/bits/fs_path.h (__throw_conversion_error): New
877 function to throw or abort on character conversion errors.
878 (__wstr_from_utf8): Move definition after filesystem_error has
879 been defined. Use __throw_conversion_error.
880 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
881 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
882 (path::u8string): Likewise.
884 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
886 * include/std/barrier: Update copyright years. Fix whitespace.
887 * include/std/version: Fix whitespace.
888 * testsuite/30_threads/barrier/1.cc: Update copyright years.
889 * testsuite/30_threads/barrier/2.cc: Likewise.
890 * testsuite/30_threads/barrier/arrive.cc: Likewise.
891 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
892 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
893 * testsuite/30_threads/barrier/completion.cc: Likewise.
895 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
897 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
899 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
902 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
904 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
906 2021-01-08 Olivier Hainque <hainque@adacore.com>
908 * testsuite/20_util/bind/ref_neg.cc: Tweak the
909 dg-prune-output regex for out-of-build-tree contexts.
911 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
913 * doc/doxygen/user.cfg.in: Add new header.
914 * include/Makefile.am (std_headers): likewise.
915 * include/Makefile.in: Regenerate.
916 * include/precompiled/stdc++.h: Add new header.
917 * include/std/barrier: New file.
918 * include/std/version: Add __cpp_lib_barrier feature test macro.
919 * testsuite/30_threads/barrier/1.cc: New test.
920 * testsuite/30_threads/barrier/2.cc: Likewise.
921 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
922 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
923 * testsuite/30_threads/barrier/arrive.cc: Likewise.
924 * testsuite/30_threads/barrier/completion.cc: Likewise.
926 2021-01-07 Patrick Palka <ppalka@redhat.com>
929 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
930 instead of the non-standard nextupl and nextdownl.
932 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
934 * configure: Re-generate.
936 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
938 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
940 2021-01-01 Jakub Jelinek <jakub@redhat.com>
942 * ChangeLog-2020: Rotate ChangeLog. New file.
945 Copyright (C) 2021 Free Software Foundation, Inc.
947 Copying and distribution of this file, with or without modification,
948 are permitted in any medium without royalty provided the copyright
949 notice and this notice are preserved.