1 2021-03-31 Alexandre Oliva <oliva@adacore.com>
3 * testsuite/30_threads/future/members/poll.cc: Use faster
4 after-ready call in the calibration loop.
6 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
8 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
9 * doc/html/manual/status.html: Regenerate.
11 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
13 * include/debug/forward_list
14 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
15 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
16 call to safe container allocator aware move constructor.
17 * include/debug/vector (vector(vector&&, const allocator_type&)):
18 Fix noexcept qualification.
19 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
20 Add allocator-extended move constructor noexceot qualification check.
21 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
23 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
25 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
27 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
28 New helper functions and callback.
29 (random_device::_M_init): Add 'prng' and 'all' enumerators.
30 Replace switch with fallthrough with a series of 'if' statements.
31 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
33 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
35 (random_device::_M_getval): Check for callback unconditionally
36 and always pass _M_file pointer.
37 * testsuite/26_numerics/random/random_device/85494.cc: Remove
38 effective-target check. Use new random_device_available helper.
39 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
40 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
41 Remove effective-target check.
42 * testsuite/26_numerics/random/random_device/cons/default.cc:
44 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
45 new random_device_available helper. Test "prng" token.
46 * testsuite/util/testsuite_random.h (random_device_available):
49 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
51 * include/debug/string
52 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
53 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
54 (basic_string<>::erase): Adapt to take __const_iterator.
55 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
56 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
57 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
58 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
59 (__gnu_debug::u16string, __gnu_debug::u32string): New.
60 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
61 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
62 * testsuite/util/exception/safety.h
63 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
64 (insert_base<__gnu_debug::basic_string<>>): Likewise.
65 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
66 New partial specialization.
67 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
68 * testsuite/21_strings/basic_string/requirements/citerators.cc:
69 Add test on __gnu_debug::string.
70 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
71 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
72 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
74 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
76 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
78 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
80 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
82 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
84 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
86 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
88 2021-03-25 Jakub Jelinek <jakub@redhat.com>
91 * testsuite/18_support/source_location/consteval.cc (main): Adjust
92 expected column numbers.
93 * testsuite/18_support/source_location/1.cc (main): Likewise.
95 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
97 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
99 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
101 * testsuite/util/exception/safety.h (setup_base::generate):
102 Support seeding random engine.
103 (erase_point, erase_range): Adjust range of random numbers to
104 ensure dereferenceable iterators are used where required.
105 (generation_prohibited::run): Do not try to erase from empty
107 * testsuite/util/testsuite_containergen.h (test_containers):
108 Support seeding random engine.
110 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
112 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
113 line with a check that uses the const being/end overloads.
115 2021-03-23 Moritz Sichert <sichert@in.tum.de>
117 * include/std/ranges (reverse_view::begin, reverse_view::end):
118 Qualify make_reverse_iterator calls to avoid ADL.
119 * testsuite/std/ranges/adaptors/reverse.cc: Test that
120 views::reverse works when make_reverse_iterator is defined
121 in an associated namespace.
123 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
125 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
126 Do not define when compiling with Clang.
128 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
130 * include/std/string_view (basic_string_view(Range&&)): Define new
131 constructor and deduction guide.
132 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
133 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
135 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
137 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
138 Add missing 'noexcept' as per LWG 2280.
139 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
140 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
141 * testsuite/24_iterators/range_access/range_access.cc: Check for
142 expected noexcept specifiers. Check result types of generic
143 std::begin and std::end overloads.
144 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
145 Check for expected noexcept specifiers.
146 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
149 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
151 * include/std/type_traits (is_scoped_enum): Define.
152 * include/std/version (__cpp_lib_is_scoped_enum): Define.
153 * testsuite/20_util/is_scoped_enum/value.cc: New test.
154 * testsuite/20_util/is_scoped_enum/version.cc: New test.
156 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
159 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
160 std::once_flag symbols.
161 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
162 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
163 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
165 * config/abi/pre/gnu.ver: Likewise.
166 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
167 (struct __once_flag_compat): Remove.
168 (_ZNSt9once_flag11_M_activateEv): Remove.
169 (_ZNSt9once_flag9_M_finishEb): Remove.
171 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
174 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
175 Revert to pthread_once_t implementation.
176 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
177 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
178 (struct __once_flag_compat): New type matching the reverted
179 implementation of once_flag using futexes.
180 (once_flag::_M_activate): Remove, replace with ...
181 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
182 (once_flag::_M_finish): Remove, replace with ...
183 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
184 * testsuite/30_threads/call_once/66146.cc: Removed.
186 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
188 * testsuite/17_intro/names.cc: Exclude j from the list
189 of test symbols for Darwin.
191 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
193 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
194 to_chars and from_chars for long double.
196 2021-03-15 Patrick Palka <ppalka@redhat.com>
198 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
200 (__max_size_type::operator++): Define.
201 (__max_size_type::operator--): Likewise.
202 (__max_size_type::operator<=>): Conditionally define (in place
203 of the other comparison operators).
204 (__max_diff_type::operator _Tp): Fix formatting.
205 (__max_diff_type::operator++): Define.
206 (__max_diff_type::operator--): Likewise.
207 (__max_diff_type::operator<=>): Conditionally define (in place
208 of the other comparison operators).
209 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
210 these operator overloads.
212 2021-03-15 Caroline Tice <cmtice@google.com>
215 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
216 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
217 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
219 * src/Makefile.in: Regenerate.
221 2021-03-11 Patrick Palka <ppalka@redhat.com>
223 * src/c++17/floating_to_chars.cc: Simplify the file as if
224 __SIZEOF_INT128__ is always defined.
225 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
226 a base-10 to_chars overload for the uint128_t class type.
227 * src/c++17/uint128_t.h: New file.
228 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
229 execution FAIL on targets that have a large long double type
232 2021-03-11 Patrick Palka <ppalka@redhat.com>
234 * src/c++17/ryu/LOCAL_PATCHES: Update.
235 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
236 * src/c++17/ryu/generic_128.h: Likewise.
237 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
238 Use uint128_t instead of __uint128_t.
239 (generic_binary_to_decimal): Likewise.
241 2021-03-11 Patrick Palka <ppalka@redhat.com>
243 * src/c++17/ryu/LOCAL_PATCHES: New file.
245 2021-03-11 Patrick Palka <ppalka@redhat.com>
247 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
248 defined alias of unsigned __int128.
249 (floating_type_traits_binary128::mantissa_t): Use uint128_t
250 instead of unsigned __int128.
251 (floating_type_traits<long double>::mantissa_t)
252 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
253 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
254 and uint32_t explicit. Simplify the extraction of mantissa,
255 exponent and sign bit.
257 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
259 * include/std/barrier (barrier::arrival_token): New move-only
260 class that encapsulates the underlying token value.
262 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
264 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
265 instead of unqualified() method.
267 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
270 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
271 Use acq_rel memory ordering.
273 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
276 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
277 helper function to check for permission denied errors.
278 * src/filesystem/dir.cc (recursive_directory_iterator):
280 * src/filesystem/dir-common.h (is_permission_denied_error): New
283 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
286 * include/bits/random.h (normal_distribution): Use
287 default-initializer for _M_saved and _M_saved_available.
289 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
291 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
293 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
294 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
295 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
296 * testsuite/30_threads/barrier/arrive.cc: Likewise.
297 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
298 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
299 * testsuite/30_threads/barrier/completion.cc: Likewise.
300 * testsuite/30_threads/latch/3.cc: Likewise.
301 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
302 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
303 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
305 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
308 * include/bits/align.h: Include debug/assertions.h.
309 * include/bits/codecvt.h: Include bits/c++config.h.
310 * include/bits/enable_special_members.h: Likewise.
311 * include/bits/erase_if.h: Likewise.
312 * include/bits/functional_hash.h: Include <type_traits>.
313 * include/bits/invoke.h: Include bits/move.h.
314 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
315 * include/bits/parse_numbers.h: Include <type_traits>.
316 * include/bits/predefined_ops.h: Include bits/c++config.h.
317 * include/bits/range_access.h: Include bits/stl_iterator.h.
318 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
319 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
320 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
321 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
322 * include/bits/unique_lock.h: Include bits/std_mutex.h.
323 * include/debug/assertions.h: Include bits/c++config.h.
325 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
327 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
328 (ranges::equal_to, ranges::not_equal_to): Do not constrain
329 with __eq_builtin_ptr_cmp.
330 (ranges::less, ranges::greater, ranges::less_equal)
331 (ranges::greater_equal): Do not constrain with
332 __less_builtin_ptr_cmp.
333 * libsupc++/compare (compare_three_way): Do not constrain with
334 __3way_builtin_ptr_cmp.
335 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
336 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
337 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
339 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
341 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
342 C++20 calendar types.
344 2021-03-06 Jakub Jelinek <jakub@redhat.com>
347 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
348 two _Nd which the compiler can pattern match the rotates.
350 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
353 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
354 Make storage larger than required. Verify no write to the last
356 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
359 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
361 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
362 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
364 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
365 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
368 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
370 * include/experimental/bits/simd.h: Replace reserved _X, _B by
372 * include/experimental/bits/simd_builtin.h: Likewise.
373 * include/experimental/bits/simd_x86.h: Likewise.
375 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
378 * include/std/chrono (year_month_day::_M_days_since_epoch()):
379 Convert chrono::month and chrono::day to unsigned before
380 converting to uint32_t.
382 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
384 * include/std/chrono (year_month_day::_S_from_days): Perform
385 all calculations with type uint32_t.
387 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
389 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
390 * doc/html/manual/abi.html: Regenerate.
392 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
395 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
396 FILE instead of FILE.
398 2021-02-25 Andreas Schwab <schwab@suse.de>
400 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
401 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
402 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
403 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
405 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
408 * include/std/chrono (year_month_day::_S_from_days): Cast long
411 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
413 * include/std/utility (to_underlying): Define.
414 * include/std/version (__cpp_lib_to_underlying): Define.
415 * testsuite/20_util/to_underlying/1.cc: New test.
416 * testsuite/20_util/to_underlying/version.cc: New test.
418 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
421 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
422 before value to be printed.
424 2021-02-24 Patrick Palka <ppalka@redhat.com>
426 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
427 Relax the condition that guards the printf code path to accept
428 F128_type as well as long double.
430 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
432 * include/std/chrono (year_month_day_last:day): New
435 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
437 * include/std/chrono (year::is_leap): New implementation.
438 * testsuite/std/time/year/2.cc: New test.
440 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
442 * include/std/chrono (year_month_day::_M_days_since_epoch):
444 * testsuite/std/time/year_month_day/4.cc: New test.
446 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
448 * include/std/chrono (year_month_day::_S_from_days): New
450 * testsuite/std/time/year_month_day/3.cc: New test.
452 2021-02-24 Patrick Palka <ppalka@redhat.com>
455 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
456 (test01): Simplify verifying the nearby values by using a
457 2-iteration loop and a dedicated output buffer to check that the
458 nearby values are different. Factor out the printf-based
459 verification into a local function, and check that the leading
460 hex digits agree before comparing to the output of printf. Also
461 verify the output by round-tripping it through from_chars.
463 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
466 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
467 symbols for long double arguments mangled as 'g'.
468 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
469 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
470 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
471 Use -mabi=ibmlongdouble for floating_to_chars.cc.
472 * src/c++17/Makefile.in: Regenerate.
473 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
474 New type defining type traits of IEEE binary128 format.
475 (floating_type_traits<__float128>): Define specialization.
476 (floating_type_traits<long double>): Define in terms of
477 floating_type_traits_binary128 when appropriate.
478 (floating_to_shortest_scientific): Handle __float128.
479 (sprintf_ld): New function template for printing a long double
480 or __ieee128 value using sprintf.
481 (__floating_to_chars_shortest, __floating_to_chars_precision):
483 (to_chars): Define overloads for __float128.
485 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
487 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
489 2021-02-23 Martin Sebor <msebor@redhat.com>
492 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
493 first argument is null.
495 2021-02-23 Jakub Jelinek <jakub@redhat.com>
498 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
501 2021-02-23 Jakub Jelinek <jakub@redhat.com>
504 * include/bits/char_traits.h (char_traits<char>::compare): For
505 constexpr evaluation don't call
506 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
509 2021-02-23 Jakub Jelinek <jakub@redhat.com>
512 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
514 2021-02-23 Patrick Palka <ppalka@redhat.com>
517 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
518 the high- and low-order parts from an IBM long double value
519 in an endian-agnostic way.
521 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
523 * include/bits/atomic_wait.h (__thread_relax()): Call
524 __thread_yield() not __gthread_yield().
526 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
528 * include/bits/atomic_wait.h (__thread_yield()): Check
529 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
530 (__thread_relax()): Use __thread_yield() instead of repeating
531 the preprocessor checks for __gthread_yield.
533 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
535 * include/std/mutex (once_flag::_M_activate()): Add explicit
536 return statement for passive case.
537 (once_flag::_M_finish(bool)): Use reserved name for parameter.
539 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
542 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
544 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
547 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
549 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
551 * doc/xml/manual/status_cxx2014.xml: Document implementation
552 specific properties of std::experimental::filesystem::rename.
553 * doc/xml/manual/status_cxx2017.xml: Document implementation
554 specific properties of std::filesystem::rename.
555 * doc/html/*: Regenerate.
556 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
557 for directories on Windows.
558 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
559 MoveFileExW on Windows.
560 * testsuite/27_io/filesystem/operations/rename.cc: New test.
561 * testsuite/experimental/filesystem/operations/rename.cc: New test.
563 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
565 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
566 random number to the path.
568 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
570 * include/experimental/internet (address_v6::to_string): Include
572 * testsuite/experimental/net/internet/address/v6/members.cc:
573 Test to_string() results.
575 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
577 * include/experimental/internet (address_v6::any): Avoid using
578 memcpy in constexpr function.
579 (address_v6::loopback): Likewise.
580 (make_address_v6): Fix missing return statements on error paths.
581 * include/experimental/io_context: Avoid -Wdangling-else
583 * testsuite/experimental/net/internet/address/v4/members.cc:
584 Remove unused variables.
585 * testsuite/experimental/net/internet/address/v6/members.cc:
588 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
590 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
591 Add unused attribute to parameter.
592 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
595 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
597 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
598 if -fno-rtti is used.
599 * testsuite/30_threads/async/forced_unwind.cc: Expect test
600 to abort if -fno-rtti is used.
602 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
604 * testsuite/util/testsuite_allocator.h (memory_resource):
605 Remove requirement for RTTI and exceptions to be enabled.
607 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
609 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
610 static_cast when RTTI is disabled.
611 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
613 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
615 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
617 * testsuite/27_io/basic_stringstream/str/char/2.cc:
619 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
622 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
624 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
625 as unused and only use dynamic_cast when RTTI is enabled.
627 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
630 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
631 Change int parameter to error_code, to match std::ios_failure.
632 (__throw_ios_failure(const char*, int)): Construct error_code
635 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
637 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
639 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
640 macro instead of _GLIBCXX_EH_PTR_COMPAT.
641 (operator==): Likewise.
643 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
646 * doc/xml/manual/status_cxx2011.xml: Document when support
648 * doc/xml/manual/status_cxx2014.xml: Likewise.
649 * doc/xml/manual/status_cxx2017.xml: Likewise.
650 * doc/html/manual/status.html: Regenerate.
652 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
655 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
657 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
659 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
660 (fs::remove): Use std::system_category() for error codes from
662 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
665 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
667 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
668 in __MINGW32__ macro name.
669 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
670 * testsuite/27_io/filesystem/path/generation/proximate.cc:
672 * testsuite/27_io/filesystem/path/generation/relative.cc:
674 * testsuite/util/testsuite_fs.h: Likewise.
676 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
678 * include/bits/stl_tree.h
679 (__has_is_transparent, __has_is_transparent_t): Move...
680 * include/bits/stl_function.h: ...here.
681 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
682 (_Hashtable_base<>::_M_equals_tr): New.
683 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
684 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
685 heterogeneous lookup.
686 (_Hashtable<>::_M_find_before_node_tr): New.
687 (_Hashtable<>::_M_find_node_tr): New.
688 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
689 unordered_map::contains<>, unordered_map::equal_range<>): New member function
690 templates to perform heterogeneous lookup.
691 (unordered_multimap::find<>, unordered_multimap::count<>,
692 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
693 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
694 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
695 (unordered_multiset::find<>, unordered_multiset::count<>,
696 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
697 * include/debug/unordered_map
698 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
699 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
700 * include/debug/unordered_set
701 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
702 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
703 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
704 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
705 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
706 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
708 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
710 * include/bits/stl_deque.h
711 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
714 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
716 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
717 test directory after making it writable again.
718 * testsuite/experimental/filesystem/operations/remove_all.cc:
721 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
724 * include/std/coroutine (coroutine_handle<P>::from_address): Add
727 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
729 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
730 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
732 2021-02-09 Jakub Jelinek <jakub@redhat.com>
735 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
736 points to the characters moved by earlier _S_move, compute the source
737 address using expression based on the __p pointer rather than __s
740 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
742 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
743 Add comparison with same category and different values.
744 * testsuite/19_diagnostics/error_code/operators/less.cc:
745 Likewise. Fix comparison involving different categories.
746 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
748 * testsuite/19_diagnostics/error_condition/operators/less.cc:
750 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
753 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
755 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
756 calls with a single vaddv for aarch64.
758 2021-02-03 Matthias Kretz <kretz@kde.org>
760 * testsuite/Makefile.am: Warn about the workaround. Add
761 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
762 Improve initial user feedback from make check-simd.
763 * testsuite/Makefile.in: Regenerated.
765 2021-02-03 Matthias Kretz <kretz@kde.org>
767 * include/experimental/bits/simd.h: Add __detail::_Minimum and
768 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
769 Add hmin and hmax overloads for simd and const_where_expression.
770 * include/experimental/bits/simd_scalar.h
771 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
772 parameter const-ref to allow calling _S_reduce with an rvalue.
773 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
774 hmin and hmax. Since the compiler statically determined that all
775 tests pass, repeat the test after a call to make_value_unknown.
777 2021-02-03 Matthias Kretz <kretz@kde.org>
779 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
780 instruction pointer data member. Ensure that the `if (m_failed)`
781 branch is always inlined into the calling code. The body of the
782 conditional can still be a function call. Move the get_ip call
783 into the verify ctor to simplify the ctor calls.
784 (COMPARE): Don't mention the use of all_of for reduction of a
785 simd_mask. It only distracts from the real issue.
787 2021-02-03 Matthias Kretz <kretz@kde.org>
789 * testsuite/experimental/simd/driver.sh: Abstract reading test
790 options into read_src_option function. Read skip, only,
791 expensive, and xfail via read_src_option. Add timeout and
792 timeout-factor options and adjust timeout variable accordingly.
793 * testsuite/experimental/simd/tests/loadstore.cc: Set
796 2021-02-03 Matthias Kretz <kretz@kde.org>
798 * testsuite/experimental/simd/driver.sh: When handling the pipe
799 to log (and on verbose to stdout) count the lines. If it exceeds
800 1000 log the issue and exit 125, which is then handled as a
803 2021-02-03 Matthias Kretz <kretz@kde.org>
805 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
806 markup for long double on powerpc64*.
808 2021-02-03 Matthias Kretz <kretz@kde.org>
810 * include/experimental/bits/simd.h: Add __have_power10vec
811 conditional on _ARCH_PWR10.
812 * include/experimental/bits/simd_builtin.h: Forward declare
813 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
815 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
816 _SuperImpl for optimizations and correctness.
817 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
818 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
819 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
820 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
822 2021-02-03 Matthias Kretz <kretz@kde.org>
824 * testsuite/experimental/simd/driver.sh: Remove executable on
825 SIGINT. Process compiler and test executable output: In verbose
826 mode print messages immediately, limited to 1000 lines and
827 breaking long lines to below $COLUMNS (or 1024 if not set).
828 Communicating the exit status of the compiler / test with the
829 necessary pipe is done via a message through stdout/-in.
831 2021-02-03 Matthias Kretz <kretz@kde.org>
833 * testsuite/Makefile.am: Ensure .simd.summary is empty before
834 collecting a new summary.
835 * testsuite/Makefile.in: Regenerate.
837 2021-02-03 Matthias Kretz <kretz@kde.org>
839 * testsuite/experimental/simd/generate_makefile.sh: Use
840 different variables internally than documented for user
841 overrides. This makes internal append/prepend work as intended.
843 2021-02-03 Matthias Kretz <kretz@kde.org>
845 * testsuite/experimental/simd/driver.sh (verify_test): Print
846 test output on run xfail. Do not repeat lines from the log that
847 were already printed on stdout.
848 (test_selector): Make the compiler flags pattern usable as a
850 (toplevel): Trap on SIGINT and remove the log and sum files.
851 Call timout with --foreground to quickly terminate on SIGINT.
852 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
853 targets via target patterns. Default DRIVEROPTS to -v for run
854 targets. Remove log and sum files after completion of the run
855 target (so that it's always recompiled).
856 Place help text into text file for reasonable 'make help'
859 2021-02-03 Matthias Kretz <kretz@kde.org>
861 * include/experimental/bits/simd.h: Remove unnecessary static
862 assertion. Allow sizeof(8) integer __intrinsic_type to enable
863 the necessary mask type.
865 2021-02-03 Matthias Kretz <kretz@kde.org>
867 * include/experimental/bits/simd.h: Let __intrinsic_type<long
868 double, N> be valid if sizeof(long double) == sizeof(double) and
869 use a __vector double as member type.
871 2021-02-03 Matthias Kretz <kretz@kde.org>
873 * include/experimental/bits/simd.h (__is_intrinsic_type): New
874 internal type trait. Alias for __is_vector_type on x86.
875 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
877 (__intrin_bitcast): Allow casting to & from vector & intrinsic
879 (__intrinsic_type): Explicitly specialize for NEON intrinsic
882 2021-02-03 Matthias Kretz <kretz@kde.org>
884 * testsuite/experimental/simd/driver.sh: Implement skip, only,
885 expensive, and xfail markers. They can select on type, ABI tag
886 subset number, target-triplet, and compiler flags.
887 * testsuite/experimental/simd/generate_makefile.sh: The summary
888 now includes lines for unexpected passes and expected failures.
889 If the skip or only markers are only conditional on the type, do
890 not generate rules for those types.
891 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
892 for ABI tag subsets 1-9.
893 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
894 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
895 * testsuite/experimental/simd/tests/casts.cc: Ditto.
896 * testsuite/experimental/simd/tests/generator.cc: Ditto.
897 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
898 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
899 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
900 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
901 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
902 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
903 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
904 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
905 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
906 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
907 * testsuite/experimental/simd/tests/operators.cc: Ditto.
908 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
909 * testsuite/experimental/simd/tests/simd.cc: Ditto.
910 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
911 * testsuite/experimental/simd/tests/splits.cc: Ditto.
912 * testsuite/experimental/simd/tests/where.cc: Ditto.
913 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
914 addition replace "test only floattypes" marker by unconditional
915 "float|double|ldouble" only marker.
916 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
917 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
918 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
920 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
921 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
922 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
923 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
924 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
925 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
926 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
927 addition, xfail on run because the reference data is missing.
929 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
931 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
932 * doc/xml/manual/status_cxx2014.xml: Likewise.
933 * doc/xml/manual/status_cxx2017.xml: Likewise.
934 * doc/html/manual/status.html: Regenerate.
936 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
939 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
940 Return 0 if both iterators are value-initialized.
941 * testsuite/23_containers/deque/70303.cc: New test.
942 * testsuite/23_containers/vector/70303.cc: New test.
944 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
946 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
948 * doc/xml/manual/status_cxx2014.xml: Likewise.
949 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
950 std::from_chars and std::to_chars status. Fix formatting.
951 * doc/html/manual/status.html: Regenerate.
953 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
955 * include/experimental/bits/numeric_traits.h: Update copyright
957 * include/experimental/bits/simd.h: Likewise.
958 * include/experimental/bits/simd_builtin.h: Likewise.
959 * include/experimental/bits/simd_converter.h: Likewise.
960 * include/experimental/bits/simd_detail.h: Likewise.
961 * include/experimental/bits/simd_fixed_size.h: Likewise.
962 * include/experimental/bits/simd_math.h: Likewise.
963 * include/experimental/bits/simd_neon.h: Likewise.
964 * include/experimental/bits/simd_ppc.h: Likewise.
965 * include/experimental/bits/simd_scalar.h: Likewise.
966 * include/experimental/bits/simd_x86.h: Likewise.
967 * include/experimental/bits/simd_x86_conversions.h: Likewise.
968 * include/experimental/simd: Likewise.
969 * testsuite/experimental/simd/*: Likewise.
971 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
973 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
974 * doc/html/*: Regenerate.
976 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
978 * testsuite/experimental/simd/generate_makefile.sh: Use printf
979 instead of echo when printing escape characters.
981 2021-01-27 Matthias Kretz <kretz@kde.org>
983 * scripts/check_simd: New file. This script is called from the
984 the check-simd target. It determines a set of compiler flags and
985 simulator setups for calling generate_makefile.sh and passes the
986 information back to the check-simd target, which recurses to the
988 * scripts/create_testsuite_files: Remove files below simd/tests/
989 from testsuite_files and place them in testsuite_files_simd.
990 * testsuite/Makefile.am: Add testsuite_files_simd. Add
992 * testsuite/Makefile.in: Regenerate.
993 * testsuite/experimental/simd/driver.sh: New file. This script
994 compiles and runs a given simd test, logging its output and
995 status. It uses the timeout command to implement compile and
997 * testsuite/experimental/simd/generate_makefile.sh: New file.
998 This script generates a Makefile which uses driver.sh to compile
999 and run the tests and collect the logs into a single log file.
1000 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
1002 * testsuite/experimental/simd/tests/algorithms.cc: New file.
1003 Tests min/max(simd, simd).
1004 * testsuite/experimental/simd/tests/bits/conversions.h: New
1005 file. Contains functions to support tests involving conversions.
1006 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
1007 Support functions make_mask and make_vec.
1008 * testsuite/experimental/simd/tests/bits/mathreference.h: New
1009 file. Support functions to supply precomputed math function
1011 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
1012 file. Support code for SFINAE testing.
1013 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
1014 * testsuite/experimental/simd/tests/bits/test_values.h: New
1015 file. Test functions to easily drive a test with simd objects
1016 initialized from a given list of values and a range of random
1018 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
1019 Support code to determine the ULP distance of simd objects.
1020 * testsuite/experimental/simd/tests/bits/verify.h: New file.
1021 Test framework for COMPARE'ing simd objects and instantiating
1022 the test templates with value_type and ABI tag.
1023 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
1025 * testsuite/experimental/simd/tests/casts.cc: New file. Test
1027 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
1028 Test floating-point classification functions.
1029 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
1031 * testsuite/experimental/simd/tests/generator.cc: New file. Test
1032 simd generator constructor.
1033 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
1034 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
1035 * testsuite/experimental/simd/tests/integer_operators.cc: New
1036 file. Test integer operators.
1037 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1038 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
1040 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
1041 (converting) simd loads and stores.
1042 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
1044 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
1045 Test simd_mask broadcasts.
1046 * testsuite/experimental/simd/tests/mask_conversions.cc: New
1047 file. Test simd_mask conversions.
1048 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
1049 file. Test simd_mask implicit conversions.
1050 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
1051 Test simd_mask loads and stores.
1052 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
1053 file. Test simd_mask operators convert as specified.
1054 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
1055 Test simd_mask compares, subscripts, and negation.
1056 * testsuite/experimental/simd/tests/mask_reductions.cc: New
1057 file. Test simd_mask reductions.
1058 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
1059 1-arg math functions on simd.
1060 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
1061 2-arg math functions on simd.
1062 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
1063 Test implicit conversions on simd binary operators behave as
1065 * testsuite/experimental/simd/tests/operators.cc: New file. Test
1066 simd compares, subscripts, not, unary minus, plus, minus,
1067 multiplies, divides, increment, and decrement.
1068 * testsuite/experimental/simd/tests/reductions.cc: New file.
1070 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
1072 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
1073 sanity checks of simd types.
1074 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
1075 sin(simd) and cos(simd).
1076 * testsuite/experimental/simd/tests/split_concat.cc: New file.
1077 Test split(simd) and concat(simd, simd).
1078 * testsuite/experimental/simd/tests/splits.cc: New file. Test
1080 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
1081 Test remaining trigonometric functions on simd.
1082 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
1083 file. Test trunc(simd), ceil(simd), and floor(simd).
1084 * testsuite/experimental/simd/tests/where.cc: New file. Test
1085 masked operations using where.
1087 2021-01-27 Matthias Kretz <kretz@kde.org>
1089 * doc/xml/manual/status_cxx2017.xml: Add implementation status
1090 of the Parallelism TS 2. Document implementation-defined types
1092 * include/Makefile.am: Add new headers.
1093 * include/Makefile.in: Regenerate.
1094 * include/experimental/simd: New file. New header for
1096 * include/experimental/bits/numeric_traits.h: New file.
1097 Implementation of P1841R1 using internal naming. Addition of
1098 missing IEC559 functionality query.
1099 * include/experimental/bits/simd.h: New file. Definition of the
1100 public simd interfaces and general implementation helpers.
1101 * include/experimental/bits/simd_builtin.h: New file.
1102 Implementation of the _VecBuiltin simd_abi.
1103 * include/experimental/bits/simd_converter.h: New file. Generic
1105 * include/experimental/bits/simd_detail.h: New file. Internal
1106 macros for the simd implementation.
1107 * include/experimental/bits/simd_fixed_size.h: New file. Simd
1108 fixed_size ABI specific implementations.
1109 * include/experimental/bits/simd_math.h: New file. Math
1111 * include/experimental/bits/simd_neon.h: New file. Simd NEON
1112 specific implementations.
1113 * include/experimental/bits/simd_ppc.h: New file. Implement bit
1114 shifts to avoid invalid results for integral types smaller than
1116 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
1117 ABI specific implementations.
1118 * include/experimental/bits/simd_x86.h: New file. Simd x86
1119 specific implementations.
1120 * include/experimental/bits/simd_x86_conversions.h: New file.
1121 x86 specific conversion optimizations. The conversion patterns
1122 work around missing conversion patterns in the compiler and
1123 should be removed as soon as PR85048 is resolved.
1124 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
1125 Test that all (not all fixed_size<N>, though) standard simd and
1126 simd_mask types are usable.
1127 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
1128 file. As above but with -ffast-math.
1129 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
1130 from the standard test loop. Instead use
1131 check_vect_support_and_set_flags to build simd tests with the
1132 relevant machine flags.
1134 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
1137 * include/bits/string_view.tcc
1138 (basic_string_view::find(const CharT*, size_type, size_type)):
1141 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
1143 * include/bits/basic_string.h (basic_string::contains): New
1145 * include/std/string_view (basic_string_view::contains):
1147 * include/std/version (__cpp_lib_string_contains): Define.
1148 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
1149 Remove trailing whitespace.
1150 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
1152 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
1153 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
1154 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
1155 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
1156 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
1158 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
1160 * src/c++17/Makefile.in: Regenerate.
1162 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
1164 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
1165 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
1167 (const char* ctype<char>:: is): Same.
1169 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1172 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
1173 write to a wide character stream if wide character support is
1174 disabled in the library.
1176 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
1178 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
1179 stringbuf not wstringbuf.
1181 2021-01-18 Jakub Jelinek <jakub@redhat.com>
1184 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
1185 Compile with -gno-as-loc-support.
1186 * src/c++11/Makefile.in: Regenerated.
1188 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
1190 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1191 Add -fcf-protection=none to -march=i486.
1193 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1195 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
1198 2021-01-14 Alexandre Oliva <oliva@adacore.com>
1200 * testsuite/30_threads/future/members/poll.cc: Calibrate
1203 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
1206 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
1207 (_Node_iterator()): Make default.
1208 (_Node_const_iterator()): Make default.
1209 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
1211 * include/debug/safe_iterator.h
1212 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
1213 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1215 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
1216 _M_singular checks on input iterators.
1217 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
1219 * testsuite/23_containers/deque/debug/98466.cc: New test.
1220 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
1222 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1225 * include/bits/fs_path.h (__throw_conversion_error): New
1226 function to throw or abort on character conversion errors.
1227 (__wstr_from_utf8): Move definition after filesystem_error has
1228 been defined. Use __throw_conversion_error.
1229 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
1230 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
1231 (path::u8string): Likewise.
1233 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
1235 * include/std/barrier: Update copyright years. Fix whitespace.
1236 * include/std/version: Fix whitespace.
1237 * testsuite/30_threads/barrier/1.cc: Update copyright years.
1238 * testsuite/30_threads/barrier/2.cc: Likewise.
1239 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1240 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1241 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1242 * testsuite/30_threads/barrier/completion.cc: Likewise.
1244 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
1246 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
1248 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
1251 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
1253 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
1255 2021-01-08 Olivier Hainque <hainque@adacore.com>
1257 * testsuite/20_util/bind/ref_neg.cc: Tweak the
1258 dg-prune-output regex for out-of-build-tree contexts.
1260 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
1262 * doc/doxygen/user.cfg.in: Add new header.
1263 * include/Makefile.am (std_headers): likewise.
1264 * include/Makefile.in: Regenerate.
1265 * include/precompiled/stdc++.h: Add new header.
1266 * include/std/barrier: New file.
1267 * include/std/version: Add __cpp_lib_barrier feature test macro.
1268 * testsuite/30_threads/barrier/1.cc: New test.
1269 * testsuite/30_threads/barrier/2.cc: Likewise.
1270 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1271 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1272 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1273 * testsuite/30_threads/barrier/completion.cc: Likewise.
1275 2021-01-07 Patrick Palka <ppalka@redhat.com>
1278 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
1279 instead of the non-standard nextupl and nextdownl.
1281 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
1283 * configure: Re-generate.
1285 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
1287 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
1289 2021-01-01 Jakub Jelinek <jakub@redhat.com>
1291 * ChangeLog-2020: Rotate ChangeLog. New file.
1294 Copyright (C) 2021 Free Software Foundation, Inc.
1296 Copying and distribution of this file, with or without modification,
1297 are permitted in any medium without royalty provided the copyright
1298 notice and this notice are preserved.