aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
AgeCommit message (Collapse)AuthorFilesLines
2024-04-23Daily bump.GCC Administrator1-0/+32
2024-04-22libstdc++: Fix conversion of simd to vector builtinMatthias Kretz2-1/+106
Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: PR libstdc++/114803 * include/experimental/bits/simd_builtin.h (_SimdBase2::operator __vector_type_t): There is no __builtin() function in _SimdWrapper, instead use its conversion operator. * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New test.
2024-04-22libstdc++: Silence irrelevant warnings in <experimental/simd>Matthias Kretz2-3/+8
Avoid -Wnarrowing in C code; -Wtautological-compare in unconditional static_assert (necessary for faking a dependency on a template parameter) Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: * include/experimental/bits/simd.h: Ignore -Wnarrowing for arm_neon.h. (__int_for_sizeof): Replace tautological compare with checking for invalid template parameter value. * include/experimental/bits/simd_builtin.h (__extract_part): Remove tautological compare by combining two static_assert.
2024-04-22libstdc++: Workaround kernel-headers on s390x-linuxJakub Jelinek6-0/+26
We see FAIL: 17_intro/headers/c++1998/all_attributes.cc (test for excess errors) FAIL: 17_intro/headers/c++2011/all_attributes.cc (test for excess errors) FAIL: 17_intro/headers/c++2014/all_attributes.cc (test for excess errors) FAIL: 17_intro/headers/c++2017/all_attributes.cc (test for excess errors) FAIL: 17_intro/headers/c++2020/all_attributes.cc (test for excess errors) FAIL: 17_intro/names.cc -std=gnu++17 (test for excess errors) on s390x-linux. The first 5 are due to kernel-headers not using uglified attribute names, where <asm/types.h> contains __attribute__((packed, aligned(4))) I've filed a downstream bugreport for this in https://bugzilla.redhat.com/show_bug.cgi?id=2276084 (not really sure where to report kernel-headers issues upstream), while the last one is due to <sys/ucontext.h> from glibc containing: #ifdef __USE_MISC # define __ctx(fld) fld #else # define __ctx(fld) __ ## fld #endif ... typedef union { double __ctx(d); float __ctx(f); } fpreg_t; and g++ predefining -D_GNU_SOURCE which implies define __USE_MISC. The following patch adds a workaround for this on the libstdc++ testsuite side. 2024-04-22 Jakub Jelinek <jakub@redhat.com> * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*. * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't define on s390. * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed): Likewise. * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed): Likewise. * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed): Likewise. * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed): Likewise.
2024-04-20Daily bump.GCC Administrator1-0/+13
2024-04-19libstdc++: Simplify constraints on <=> for std::reference_wrapperJonathan Wakely1-5/+11
Instead of constraining these overloads in terms of synth-three-way we can just check that the value_type is less-than-comparable, which is what synth-three-way's constraints check. The reason that I implemented these with constraints has now been filed as LWG 4071, so add a comment about that too. libstdc++-v3/ChangeLog: * include/bits/refwrap.h (operator<=>): Simplify constraints.
2024-04-19libstdc++: Support link chains in std::chrono::tzdb::locate_zone [PR114770]Jonathan Wakely3-4/+280
Since 2022 the TZif format defined in the zic(8) man page has said that links can refer to other links, rather than only referring to a zone. This isn't supported by the C++20 spec, which assumes that the target() for a chrono::time_zone_link always names a chrono::time_zone, not another chrono::time_zone_link. This hasn't been a problem until now, because there are no entries in the tzdata file that chain links together. However, Debian Sid has changed the target of the Asia/Chungking link from the Asia/Shanghai zone to the Asia/Chongqing link, creating a link chain. The libstdc++ code is unable to handle this, so chrono::locate_zone("Asia/Chungking") will fail with the tzdata.zi file from Debian Sid. It seems likely that the C++ spec will need a change to allow link chains, so that the original structure of the IANA database can be fully represented by chrono::tzdb. The alternative would be for chrono::tzdb to flatten all chains when loading the data, so that a link's target is always a zone, but this means throwing away information present in the tzdata.zi input file. In anticipation of a change to the spec, this commit adds support for chained links to libstdc++. When a name is found to be a link, we try to find its target in the list of zones as before, but now if the target isn't the name of a zone we don't fail. Instead we look for another link with that name, and keep doing that until we reach the end of the chain of links, and then look up the last target as a zone. This new logic would get stuck in a loop if the tzdata.zi file is buggy and defines a link chain that contains a cycle, e.g. two links that refer to each other. To deal with that unlikely case, we use the tortoise and hare algorithm to detect cycles in link chains, and throw an exception if we detect a cycle. Cycles in links should never happen, and it is expected that link chains will be short (if they occur at all) and so the code is optimized for short chains without cycles. Longer chains (four or more links) and cycles will do more work, but won't fail to resolve a chain or get stuck in a loop. The new test file checks various forms of broken links and cycles. Also add a new check in the testsuite that every element in the get_tzdb().zones and get_tzdb().links sequences can be successfully found using locate_zone. libstdc++-v3/ChangeLog: PR libstdc++/114770 * src/c++20/tzdb.cc (do_locate_zone): Support links that have another link as their target. * testsuite/std/time/tzdb/1.cc: Check that all zones and links can be found by locate_zone. * testsuite/std/time/tzdb/links.cc: New test.
2024-04-19Daily bump.GCC Administrator1-0/+17
2024-04-18[libstdc++] [testsuite] disable SRA for compare_exchange_paddingAlexandre Oliva1-2/+3
On arm-vx7r2, the uses of as.load() as initializer get SRAed, so the padding bits in the tests are not what we might expect from full-word struct copies. I tried adding a function to perform bitwise copying, but even taking the as.load() argument by const&, we'd still construct a temporary with SRAed field-wise copying. Unable to find another way to ensure we wouldn't get a temporary, I went for disabling SRA. for libstdc++-v3/ChangeLog * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Disable SRA.
2024-04-18[libstdc++] [testsuite] xfail double-prec from_chars for float128_tAlexandre Oliva2-1/+3
Tests 20_util/from_chars/4.cc and 20_util/to_chars/long_double.cc were adjusted about a year ago to skip long double on some targets, because the fastfloat library was limited to 64-bit doubles. The same problem comes up in similar float128_t tests on aarch64-vxworks. This patch adjusts them similarly. Unlike the earlier tests, that got similar treatment for x86_64-vxworks, these haven't failed there. for libstdc++-v3/ChangeLog * testsuite/20_util/from_chars/8.cc: Skip float128_t testing on aarch64-vxworks. * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on aarch64-vxworks.
2024-04-18[libstdc++] define zoneinfo_dir_override on vxworksAlexandre Oliva1-2/+3
VxWorks fails to load kernel-mode modules with weak undefined symbols. In RTP mode modules, that undergo final linking, weak undefined symbols are not a problem. This patch adds kernel-mode VxWorks multilibs to the set of targets that don't support weak undefined symbols without special flags, in which tzdb's zoneinfo_dir_override is given a weak definition. for libstdc++-v3/ChangeLog * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define on VxWorks non-RTP.
2024-04-18Daily bump.GCC Administrator1-0/+19
2024-04-17libstdc++: Implement "Printing blank lines with println" for C++23Jonathan Wakely5-1/+126
This was recently approved for C++26 at the Tokyo meeting. As suggested by Stephan T. Lavavej, I'm defining it as an extension for C++23 mode (when std::print and std::prinln were first added) rather than as a new C++26 feature. Both MSVC and libc++ have agreed to do this too. libstdc++-v3/ChangeLog: * include/std/ostream (println(ostream&)): Define new overload. * include/std/print (println(FILE*), println()): Likewise. * testsuite/27_io/basic_ostream/print/2.cc: New test. * testsuite/27_io/print/1.cc: Remove unused header. * testsuite/27_io/print/3.cc: New test.
2024-04-17libstdc++: Add include guard to simd-internal headerMatthias Kretz1-0/+4
Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: * include/experimental/bits/numeric_traits.h: Add include guard.
2024-04-17libstdc++: Avoid ill-formed types on ARMMatthias Kretz1-2/+2
This resolves failing tests in check-simd. Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: PR libstdc++/114750 * include/experimental/bits/simd_builtin.h (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying scalars if the memory type cannot be vectorized for the target.
2024-04-17Daily bump.GCC Administrator1-0/+6
2024-04-16libstdc++: Fix "extact" typos in commentsJonathan Wakely2-4/+4
libstdc++-v3/ChangeLog: * config/locale/dragonfly/numeric_members.cc: Fix typos in comments. * config/locale/gnu/numeric_members.cc: Likewise.
2024-04-16Daily bump.GCC Administrator1-0/+35
2024-04-15libstdc++: Update libstdc++.so versioning history for 14.1.0 releaseJonathan Wakely2-2/+2
We can replace "GCC <next>" with "GCC 14.1.0" now that we're nearing the release. libstdc++-v3/ChangeLog: * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0". * doc/html/manual/abi.html: Regenerate.
2024-04-15libstdc++: Add std::reference_wrapper comparison operators for C++26Jonathan Wakely5-0/+159
This C++26 change was just approved in Tokyo, in P2944R3. It adds operator== and operator<=> overloads to std::reference_wrapper. The operator<=> overloads in the paper cause compilation errors for any type without <=> so they're implemented here with deduced return types and constrained by a requires clause. libstdc++-v3/ChangeLog: * include/bits/refwrap.h (reference_wrapper): Add comparison operators as proposed by P2944R3. * include/bits/version.def (reference_wrapper): Define. * include/bits/version.h: Regenerate. * include/std/functional: Enable feature test macro. * testsuite/20_util/reference_wrapper/compare.cc: New test.
2024-04-15libstdc++: Heterogeneous std::pair comparisons [PR113386]Jonathan Wakely2-8/+39
I'm only treating this as a DR for C++20 for now, because it's less work and only requires changes to operator== and operator<=>. To do this for older standards would require changes to the six relational operators used pre-C++20. libstdc++-v3/ChangeLog: PR libstdc++/113386 * include/bits/stl_pair.h (operator==, operator<=>): Support heterogeneous comparisons, as per LWG 3865. * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New test.
2024-04-15libstdc++: Fix infinite loop in std::istream::ignore(n, delim) [PR93672]Jonathan Wakely3-2/+146
A negative delim value passed to std::istream::ignore can never match any character in the stream, because the comparison is done using traits_type::eq_int_type(sb->sgetc(), delim) and sgetc() never returns negative values (except at EOF). The optimized version of ignore for the std::istream specialization uses traits_type::find to locate the delim character in the streambuf, which _can_ match a negative delim on platforms where char is signed, but then we do another comparison using eq_int_type which fails. The code then keeps looping forever, with traits_type::find locating the character and traits_type::eq_int_type saying it's not a match, so traits_type::find is used again and finds the same character again. A possible fix would be to check with eq_int_type after a successful find, to see whether we really have a match. However, that would be suboptimal since we know that a negative delimiter will never match using eq_int_type. So a better fix is to adjust the check at the top of the function that handles delim==eof(), so that we treat all negative delim values as equivalent to EOF. That way we don't bother using find to search for something that will never match with eq_int_type. The version of ignore in the primary template doesn't need a change, because it doesn't use traits_type::find, instead characters are extracted one-by-one and always matched using eq_int_type. That avoids the inconsistency between find and eq_int_type. The specialization for std::wistream does use traits_type::find, but traits_type::to_int_type is equivalent to an implicit conversion from wchar_t to wint_t, so passing a wchar_t directly to ignore without using to_int_type works. libstdc++-v3/ChangeLog: PR libstdc++/93672 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)): Treat all negative delimiter values as eof(). * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test. * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New test.
2024-04-15libstdc++: Update baseline symbols for riscv64-linuxAndreas Schwab1-0/+4
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2024-04-14Daily bump.GCC Administrator1-0/+5
2024-04-13libstdc++: Update some baseline_symbols.txt (x32)H.J. Lu1-0/+6
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
2024-04-12Daily bump.GCC Administrator1-0/+39
2024-04-11Update GCC 14.1 library versions in docsJakub Jelinek2-1/+2
When we are already touching this topic, here is a patch like r13-5126 which documents the upcoming release symbol versions in the documentation. 2024-04-11 Jakub Jelinek <jakub@redhat.com> * doc/xml/manual/abi.xml: Add latest library versions. * doc/html/manual/abi.html: Regenerate.
2024-04-11libstdc++: Regenerate trunk baseline_symbols.txt files for LinuxJakub Jelinek9-0/+36
While the previous patch was regeneration from 13.2 release (with hand edits for arches I don't have libraries for but which are still well maintained), thius one is regeneration from the trunk (this time for hand edits everywhere for the PR114692 https://gcc.gnu.org/pipermail/libstdc++/2024-April/058570.html patch; plus again hand edits for arches I don't have libraries for). 2024-04-11 Jakub Jelinek <jakub@redhat.com> * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2024-04-11libstdc++: Export std::__basic_file::native_handle as GLIBCXX_3.4.33 [PR114692]Jonathan Wakely2-3/+9
I added this new symbol in the wrong version. GLIBCXX_3.4.32 was already used for the GCC 13.2.0 release, so the new symbol should have been in a new GLIBCXX_3.4.33 version. Additionally, the pattern doesn't need to use [cw] because we only ever use __basic_file<char>, even for std::basic_filebuf<wchar_t>. libstdc++-v3/ChangeLog: PR libstdc++/114692 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for __basic_file::native_handle to ... (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t specialization, which isn't used. * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update latest version check.
2024-04-11libstdc++: Regenerate baseline_symbols.txt files for LinuxJakub Jelinek9-0/+18
The following patch regenerates the ABI files for 13 branch (I've only changed the Linux files which were updated in r13-7289, all but m68k, riscv64 and powerpc64 are from actual Fedora 39 gcc builds, the rest hand edited). We've added one symbol very early in the 13.2 cycle, but then added 2 further ones very soon afterwards, quite a long time before 13.2 release and haven't regenerated. The patch applies cleanly to trunk as well. 2024-04-11 Jakub Jelinek <jakub@redhat.com> * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2024-04-11Daily bump.GCC Administrator1-0/+14
2024-04-10libstdc++: Adjust expected locale-dependent date formats in testsJonathan Wakely2-4/+4
The std/time/year_month_day/io.cc test assumes that %x in the fr_FR locale is %d/%m/%Y but on FreeBSD it is %d.%m.%Y instead. Make the test PASS for either format. Similarly, 27_io/manipulators/extended/get_time/char/2.cc expects that %a in the de_DE locale is "Di" but on FreeBSD it's "Di." with a trailing period. Adjust the input string to be "1971 Di." instead of "Di 1971" and that way if %a doesn't expect the trailing '.' it simply won't extract it from the stream. This fixes: FAIL: std/time/year_month_day/io.cc -std=gnu++20 execution test FAIL: 27_io/manipulators/extended/get_time/char/2.cc -std=gnu++17 execution test libstdc++-v3/ChangeLog: * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Adjust input string so that it matches %a with or without a trailing period. * testsuite/std/time/year_month_day/io.cc: Adjust expected format for %x in the fr_FR locale.
2024-04-10libstdc++: Handle EMLINK and EFTYPE in std::filesystem::remove_allJonathan Wakely1-2/+14
Although POSIX requires ELOOP, FreeBSD documents that openat with O_NOFOLLOW returns EMLINK if the last component of a filename is a symbolic link. Check for EMLINK as well as ELOOP, so that the TOCTTOU mitigation in remove_all works correctly. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214633 or the FreeBSD man page for reference. According to its man page, DragonFlyBSD also uses EMLINK for this error, and NetBSD uses its own EFTYPE. OpenBSD follows POSIX and uses EMLINK. This fixes these failures on FreeBSD: FAIL: 27_io/filesystem/operations/remove_all.cc -std=gnu++17 execution test FAIL: experimental/filesystem/operations/remove_all.cc -std=gnu++17 execution test libstdc++-v3/ChangeLog: * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]: Check for EMLINK as well as ELOOP. [__NetBSD__]: Check for EFTYPE as well as ELOOP.
2024-04-10Daily bump.GCC Administrator1-0/+6
2024-04-10libstdc++: Fix build for targets without FP std::from_chars [PR114633]Jonathan Wakely1-0/+4
If the faster std::from_chars is not supported for floating-point types then just extract the value from the stream using operator>>. This fixes a build error for targets where __cpp_lib_to_chars is not defined. libstdc++-v3/ChangeLog: PR libstdc++/114633 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use stream extraction if std::from_chars is not available.
2024-04-09Daily bump.GCC Administrator1-0/+45
2024-04-08libstdc++: Use char for _Utf8_view if char8_t isn't available [PR114519]Jonathan Wakely2-2/+5
Instead of just omitting the definition of __unicode::_Utf8_view when char8_t is disabled, we can make it use char instead. libstdc++-v3/ChangeLog: PR libstdc++/114519 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define using char instead of char8_t. * testsuite/ext/unicode/view.cc: Use u8""sv literals to create string views, instead of std::u8string_view.
2024-04-08libstdc++: Fix tests that fail with -fno-char8_tJonathan Wakely15-18/+26
Adjust expected errors or skip tests as UNSUPPORTED if -fno-char8_t is used in the test flags. libstdc++-v3/ChangeLog: * testsuite/20_util/integer_comparisons/equal_neg.cc: Use no-opts selector for errors that depend on -fchar8_t. * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/greater_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/in_range_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/less_equal_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/not_equal_neg.cc: Likewise. * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip if -fno-char8_t is used. * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc: Likewise. * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use char for u8 literal if char8_t is not available. * testsuite/27_io/headers/iosfwd/synopsis.cc: Check __cpp_char8_t. * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: Remove check for _GLIBCXX_USE_CHAR8_T.
2024-04-08libstdc++: Combine two std::from_chars tests into oneJonathan Wakely2-43/+7
We don't need separate tests for the C++17 and C++20 cases, we can just have one test that uses __cpp_char8_t to adjust whether it tests char8_t or not. This means the C++20 one doesn't fail if -fno-char8_t is used. libstdc++-v3/ChangeLog: * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases, using a struct of that name if -fno-char8_t is active. * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
2024-04-04Daily bump.GCC Administrator1-0/+7
2024-04-03libstdc++: Reverse arguments in constraint for std::optional's <=> [PR104606]Jonathan Wakely2-1/+19
This is a workaround for a possible compiler bug that causes constraint recursion in the operator<=>(const optional<T>&, const U&) overload. libstdc++-v3/ChangeLog: PR libstdc++/104606 * include/std/optional (operator<=>(const optional<T>&, const U&)): Reverse order of three_way_comparable_with template arguments. * testsuite/20_util/optional/relops/104606.cc: New test.
2024-04-03Daily bump.GCC Administrator1-0/+27
2024-04-02libstdc++: Guard uses of char8_t with __cpp_char8_t [PR114519]Jonathan Wakely2-3/+10
libstdc++-v3/ChangeLog: PR libstdc++/114519 * include/bits/unicode.h (_Utf8_view): Guard with check for char8_t being enabled. (__literal_encoding_is_unicode): Guard use of char8_t with check for it being enabled. * testsuite/std/format/functions/114519.cc: New test.
2024-04-02libstdc++: Allow adjacent __maybe_present_t<false, ...> fields to overlapPatrick Palka2-5/+12
Currently __maybe_present_t<false, T> maps to the same empty class type independent of T. This is suboptimal because it means adjacent __maybe_present_t<false, ...> members with the [[no_unique_address]] attribute can't overlap even if the conditionally present types are different. This patch turns this empty class type into a template parameterized by the conditionally present type, so that [[no_unique_address]] __maybe_present_t<false, T> _M_a; [[no_unique_address]] __maybe_present_t<false, U> _M_b; now overlap if T and U are different. This patch goes a step further and also adds an optional integer discriminator parameter to allow for overlapping when T and U are the same. libstdc++-v3/ChangeLog: * include/std/ranges (ranges::__detail::_Empty): Rename to ... (ranges::__detail::_Absent): ... this. Turn into a template parameterized by the absent type _Tp and discriminator _Disc. (ranges::__detail::__maybe_present_t): Add an optional discriminator parameter. (slide_view::_M_cached_begin): Pass a discriminator argument to __maybe_present_t. (slide_view::_M_cached_end): Likewise. * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of slide_view<V> is 3 instead 4 pointers. Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
2024-04-02Fix up duplicated words mostly in comments, part 1Jakub Jelinek2-2/+2
Like in r12-7519-g027e30414492d50feb2854aff38227b14300dc4b, I've done git grep -v 'long long\|optab optab\|template template\|double double' | grep ' \([a-zA-Z]\+\) \1 ' This is just part of the changes, mostly for non-gcc directories. I'll try to get to the rest soon. Obviously, the above command also finds cases which are correct as is and shouldn't be changed, so one needs to manually inspect everything. I'd hope most of it is pretty obvious, but the config/ and libstdc++-v3/ hunks include a tweak in a license wording, though other copies of the similar license have the wording right. 2024-04-02 Jakub Jelinek <jakub@redhat.com> * Makefile.tpl: Fix duplicated words; returns returns -> returns. config/ * lcmessage.m4: Fix duplicated words; can can -> can, package package -> package. libdecnumber/ * decCommon.c (decFinalize): Fix duplicated words in comment; the the -> the. libgcc/ * unwind-dw2-fde.c (struct fde_accumulator): Fix duplicated words in comment; is is -> is. libgfortran/ * configure.host: Fix duplicated words; the the -> the. libgm2/ * configure.host: Fix duplicated words; the the -> the. libgomp/ * libgomp.texi (OpenMP 5.2): Fix duplicated words; with with -> with. (omp_target_associate_ptr): Fix duplicated words; either either -> either. (omp_init_allocator): Fix duplicated words; be be -> be. (omp_realloc): Fix duplicated words; is is -> is. (OMP_ALLOCATOR): Fix duplicated words; other other -> other. * priority_queue.h (priority_queue_multi_p): Fix duplicated words; to to -> to. libiberty/ * regex.c (byte_re_match_2_internal): Fix duplicated words in comment; next next -> next. * dyn-string.c (dyn_string_init): Fix duplicated words in comment; of of -> of. libitm/ * beginend.cc (GTM::gtm_thread::begin_transaction): Fix duplicated words in comment; not not -> not to. libobjc/ * init.c (duplicate_classes): Fix duplicated words in comment; in in -> in. * sendmsg.c (__objc_prepare_dtable_for_class): Fix duplicated words in comment; the the -> the. * encoding.c (objc_layout_structure): Likewise. libstdc++-v3/ * acinclude.m4: Fix duplicated words; file file -> file can. * configure.host: Fix duplicated words; the the -> the. libvtv/ * vtv_rts.cc (vtv_fail): Fix duplicated words; to to -> to. * vtv_fail.cc (vtv_fail): Likewise.
2024-03-30Daily bump.GCC Administrator1-0/+18
2024-03-29libstdc++-v3: drop GCC Runtime Library Exception from gen testsArsen Arsenović7-42/+16
It was mistakenly added to these files. libstdc++-v3/ChangeLog: * testsuite/24_iterators/range_generators/01.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/02.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/copy.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/except.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC Runtime Library Exception. * testsuite/24_iterators/range_generators/iter_deref_return.cc: Drop GCC Runtime Library Exception from the "You should have received a copy" paragraph.
2024-03-28Daily bump.GCC Administrator1-0/+32
2024-03-27libstdc++: Add masked ++/-- implementation for sizeof < 16Matthias Kretz1-10/+14
This resolves further failures (-Wreturn-type warnings) and test failures for where-* tests targeting AVX-512. Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: * include/experimental/bits/simd_x86.h (_S_masked_unary): Cast inputs < 16 bytes to 16 byte vectors before calling the right subtraction builtin. Before returning, truncate to the return vector type.
2024-03-27libstdc++: Fix call signature of builtins from masked ++/--Matthias Kretz1-3/+9
This resolves failures in the "expensive" where-* test of check-simd when targeting AVX-512. Signed-off-by: Matthias Kretz <m.kretz@gsi.de> libstdc++-v3/ChangeLog: * include/experimental/bits/simd_x86.h (_S_masked_unary): Call the 4- and 8-byte variants of __builtin_ia32_subp[ds] without rounding direction argument.