Commit graph

15080 commits

Author SHA1 Message Date
Rainer Orth
d92b508dd1 libstdc++: Build libbacktrace and 19_diagnostics/stacktrace with -funwind-tables [PR111641]
Several of the 19_diagnostics/stacktrace tests FAIL on Solaris/SPARC (32
and 64-bit), Solaris/x86 (32-bit only), and several other targets:

FAIL: 19_diagnostics/stacktrace/current.cc  -std=gnu++23 execution test
FAIL: 19_diagnostics/stacktrace/current.cc  -std=gnu++26 execution test
FAIL: 19_diagnostics/stacktrace/entry.cc  -std=gnu++23 execution test
FAIL: 19_diagnostics/stacktrace/entry.cc  -std=gnu++26 execution test
FAIL: 19_diagnostics/stacktrace/output.cc  -std=gnu++23 execution test
FAIL: 19_diagnostics/stacktrace/output.cc  -std=gnu++26 execution test
FAIL: 19_diagnostics/stacktrace/stacktrace.cc  -std=gnu++23 execution test
FAIL: 19_diagnostics/stacktrace/stacktrace.cc  -std=gnu++26 execution test

As it turns out, both the copy of libbacktrace in libstdc++ and the
testcases proper need to compiled with -funwind-tables, as is done for
libbacktrace itself.

This isn't an issue on Linux/x86_64 and Solaris/amd64 since 64-bit x86
always defaults to -funwind-tables.  32-bit x86 does, too, when
-fomit-frame-pointer is enabled as on Linux/i686, but unlike
Solaris/i386.

So this patch always enables the option both for the libbacktrace copy
and the testcases.

Tested on i386-pc-solaris2.11, sparc-sun-solaris2.11, and
x86_64-pc-linux-gnu.

2024-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libstdc++-v3:
	PR libstdc++/111641
	* src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
	* src/libbacktrace/Makefile.in: Regenerate.

	* testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
	-funwind-tables.
	* testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
	* testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
	* testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
	* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.

(cherry picked from commit a99ebb88f8f25e76ebed5afc22e64fa77a2f0d3f)
2024-06-04 09:10:24 +02:00
GCC Administrator
b2bbf9890e Daily bump. 2024-06-04 00:23:13 +00:00
François Dumont
955202eb2c libstdc++: Fix -Wstringop-overflow warning coming from std::vector [PR109849]
libstdc++-v3/ChangeLog:

	PR libstdc++/109849
	* include/bits/vector.tcc
	(std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
	forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
	expression to tell the compiler that the allocated buffer is large enough to
	receive current elements plus the elements of the range to insert.

(cherry picked from commit 0426be454448f8cfb9db21f4f669426afb7b57c8)
2024-06-03 21:52:58 +02:00
GCC Administrator
a31676a5d0 Daily bump. 2024-06-02 00:22:52 +00:00
Jonathan Wakely
2f097c0b3f libstdc++: Replace link to gcc-4.3.2 docs in manual [PR115269]
Link to the docs for GCC trunk instead. For the release branches, the
link should be to the docs for appropriate release branch.

Also replace the incomplete/outdated list of explicit -std options with
a single entry for the -std option.

libstdc++-v3/ChangeLog:

	PR libstdc++/115269
	* doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
	Replace list of -std=... options with a single entry for -std.
	* doc/html/manual/using.html: Regenerate.

(cherry picked from commit b460ede64f9471589822831e04eecff4a3dbecf2)
2024-06-01 11:01:37 +01:00
GCC Administrator
e2b66da9bd Daily bump. 2024-05-29 00:23:15 +00:00
Jonathan Wakely
89dff1488e libstdc++: Guard use of sized deallocation [PR114940]
Clang does not enable -fsized-deallocation by default, which means it
can't compile our <stacktrace> and <generator> headers.

Make the __cpp_lib_generator macro depend on the compiler-defined
__cpp_sized_deallocation macro, and change <stacktrace> to use unsized
deallocation when __cpp_sized_deallocation isn't defined.

libstdc++-v3/ChangeLog:

	PR libstdc++/114940
	* include/bits/version.def (generator): Depend on
	__cpp_sized_deallocation.
	* include/bits/version.h: Regenerate.
	* include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
	(basic_stacktrace::_Impl::_M_deallocate): Use it.

(cherry picked from commit b2fdd508d7e63158e9d2a6dd04f901d02900def3)
2024-05-28 10:19:44 +01:00
GCC Administrator
137e7a86a4 Daily bump. 2024-05-23 00:22:09 +00:00
Jonathan Wakely
4896bb3199 libstdc++: Implement std::formatter<std:🧵:id> without <sstream> [PR115099]
The std:🧵:id formatter uses std::basic_ostringstream without
including <sstream>, which went unnoticed because the test for it uses
a stringstream to check the output is correct.

The fix implemented here is to stop using basic_ostringstream for
formatting thread::id and just use std::format instead.

As a drive-by fix, the formatter specialization is constrained to
require that the thread:🆔:native_handle_type can be formatted, to
avoid making the formatter ill-formed if the pthread_t type is not a
pointer or integer. Since non-void pointers can't be formatted, ensure
that we convert pointers to const void* for formatting. Make a similar
change to the existing operator<< overload so that in the unlikely case
that pthread_t is a typedef for char* we don't treat it as a
null-terminated string when inserting into a stream.

libstdc++-v3/ChangeLog:

	PR libstdc++/115099
	* include/bits/std_thread.h: Declare formatter as friend of
	thread::id.
	* include/std/thread (operator<<): Convert non-void pointers to
	void pointers for output.
	(formatter): Add constraint that thread::native_handle_type is a
	pointer or integer.
	(formatter::format): Reimplement without basic_ostringstream.
	* testsuite/30_threads/thread/id/output.cc: Check output
	compiles before <sstream> has been included.

(cherry picked from commit 1a5e4dd83788ea4c049d354d83ad58a6a3d747e6)
2024-05-22 10:06:52 +01:00
GCC Administrator
a7240b0bde Daily bump. 2024-05-19 19:09:01 +00:00
Jonathan Wakely
e909d360df
libstdc++: Fix typo in _Grapheme_cluster_view::_Iterator [PR115119]
libstdc++-v3/ChangeLog:

	PR libstdc++/115119
	* include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
	in increment expression.
	* testsuite/ext/unicode/grapheme_view.cc: Check post-increment
	on view's iterator.

(cherry picked from commit c9e05b03c18e898be604ab90401476e9c473cc52)
2024-05-17 13:48:43 +01:00
GCC Administrator
7c49e45fbf Daily bump. 2024-05-15 00:22:45 +00:00
Jonathan Wakely
eefa4c0648 libstdc++: Guard dynamic_cast use in src/c++23/print.cc [PR115015]
Do not use dynamic_cast unconditionally, in case libstdc++ is built with
-fno-rtti.

libstdc++-v3/ChangeLog:

	PR libstdc++/115015
	* src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
	Do not use dynamic_cast.
2024-05-14 15:06:56 +01:00
Jonathan Wakely
c60205cd4a libstdc++: Fix typo in std::stacktrace::max_size [PR115063]
libstdc++-v3/ChangeLog:

	PR libstdc++/115063
	* include/std/stacktrace (basic_stacktrace::max_size): Fix typo
	in reference to _M_alloc member.
	* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
	max_size() compiles.

(cherry picked from commit dd9677f3343ca2a4b4aab9428b8129774accac29)
2024-05-14 10:50:20 +01:00
Jonathan Wakely
4d3b358fd7 libstdc++: Guard uses of is_pointer_interconvertible_v [PR114891]
This type trait isn't supported by Clang 18. It's only used in static
assertions, so they can just be omitted if the trait isn't available.

libstdc++-v3/ChangeLog:

	PR libstdc++/114891
	* include/std/generator: Check feature test macro before using
	is_pointer_interconvertible_v.

(cherry picked from commit 1fbe1a50d86df11f434351cf62461a32747f9710)
2024-05-14 10:50:19 +01:00
Jonathan Wakely
788ccd269e libstdc++: Update ABI test to disallow adding to released symbol versions
If we update the list of "active" symbols versions now, rather than when
adding a new symbol version, we will notice if new symbols get added to
the wrong version (as in PR 114692).

libstdc++-v3/ChangeLog:

	* testsuite/util/testsuite_abi.cc: Update latest versions to
	new versions that should be used in future.

(cherry picked from commit 6e25ca387fbbb412a2e498e28ea5db28e033a318)
2024-05-14 10:50:19 +01:00
Jonathan Wakely
b0f022f93a libstdc++: Fix handling of incomplete UTF-8 sequences in _Unicode_view
Eddie Nolan reported to me that _Unicode_view was not correctly
implementing the substitution of ill-formed subsequences with U+FFFD,
due to failing to increment the counter when the iterator reaches the
end of the sequence before a multibyte sequence is complete.  As a
result, the incomplete sequence was not completely consumed, and then
the remaining character was treated as another ill-formed sequence,
giving two U+FFFD characters instead of one.

To avoid similar mistakes in future, this change introduces a lambda
that increments the iterator and the counter together. This ensures the
counter is always incremented when the iterator is incremented, so that
we always know how many characters have been consumed.

libstdc++-v3/ChangeLog:

	* include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
	count of characters consumed is correct when the end of the
	input is reached unexpectedly.
	* testsuite/ext/unicode/view.cc: Test incomplete UTF-8
	sequences.

(cherry picked from commit 3f04f3939ea0ac8fdd766a60655d29de2ffb44e5)
2024-05-14 10:50:19 +01:00
Jonathan Wakely
95055199ee libstdc++: Fix <memory> for -std=c++23 -ffreestanding [PR114866]
std::shared_ptr isn't declared for freestanding, so guard uses of it
with #if _GLIBCXX_HOSTED in <bits/out_ptr.h>.

libstdc++-v3/ChangeLog:

	PR libstdc++/114866
	* include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
	shared_ptr, __shared_ptr or __is_shred_ptr.
	* testsuite/20_util/headers/memory/114866.cc: New test.

(cherry picked from commit 9927059bb88e966e0a45f09e4fd1193f93df708f)
2024-05-14 10:50:19 +01:00
Jakub Jelinek
cd0059a197 Update ChangeLog and version files for release 2024-05-07 06:52:35 +00:00
GCC Administrator
532d775fc1 Daily bump. 2024-05-04 00:23:25 +00:00
Andreas Schwab
d7c06a80b5 libstdc++: Update powerpc-linux-gnu baseline_symbols
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2024-05-03 15:39:00 +02:00
GCC Administrator
9ccb16d032 Daily bump. 2024-05-01 00:22:29 +00:00
Jonathan Wakely
7a00c459cb
libstdc++: Do not apply localized formatting to NaN and inf [PR114863]
We don't want to add grouping to strings like "-inf", and there is no
radix character to replace either.

libstdc++-v3/ChangeLog:

	PR libstdc++/114863
	* include/std/format (__formatter_fp::format): Only use
	_M_localized for finite values.
	* testsuite/std/format/functions/format.cc: Check localized
	formatting of NaN and initiny.

(cherry picked from commit 7501c0a397fcf609a1ff5f083746b6330b89ee11)
2024-04-30 09:36:44 +01:00
GCC Administrator
0062f8310d Daily bump. 2024-04-30 00:22:01 +00:00
Rainer Orth
330c04dc53 libstdc++: Update Solaris baselines for GCC 14.0
This patch updates the Solaris baselines for the GLIBCXX_3.4.33 version
added in GCC 14.0.

Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11 (32 and 64-bit
each), together with the GLIBCXX_3.4.32 update, on both gcc-14 branch
and trunk.

2024-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libstdc++-v3:
	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
	Likewise.
	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
	Likewise.
2024-04-29 14:33:46 +02:00
Rainer Orth
c3e9b863f2 libstdc++: Update Solaris baselines for GCC 13.2
This patch updates the Solaris baselines for the GLIBCXX_3.4.32 version
added in GCC 13.2.

Tested on i386-pc-solaris2.11 and sparc-sun-solaris2.11 (32 and 64-bit
each) on the gcc-13 branch and (together with the GLIBCXX_3.4.33 update)
on both gcc-14 branch and trunk.

2024-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libstdc++-v3:
	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
	Likewise.
	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
	Likewise.

(cherry picked from commit 3e1ca512848994950cc0641986b6ec337df5765f)
2024-04-29 14:32:08 +02:00
GCC Administrator
457e907c86 Daily bump. 2024-04-27 00:21:59 +00:00
Jonathan Wakely
5e5f33a067
libstdc++: Update status tables to refer to GCC 14 not mainline
libstdc++-v3/ChangeLog:

	* doc/html/manual/status.html: Regenerate.
	* doc/xml/manual/status_cxx1998.xml: Replace references to
	mainline GCC.
	* doc/xml/manual/status_cxx2011.xml: Likewise.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise.
	* doc/xml/manual/status_cxx2020.xml: Likewise.
	* doc/xml/manual/status_cxx2023.xml: Likewise.
	* doc/xml/manual/status_cxxtr1.xml: Likewise.
	* doc/xml/manual/status_cxxtr24733.xml: Likewise.
2024-04-26 11:59:21 +01:00
GCC Administrator
9353f6f475 Daily bump. 2024-04-26 00:16:42 +00:00
Jonathan Wakely
8d80e3c5a6
libstdc++: Rename man pages to use '::' instead of '_'
The Doxygen-generated man pages for some new types need to be renamed to
use '::' instead of '_' in the filenames.

libstdc++-v3/ChangeLog:

	* scripts/run_doxygen: Rename man pages for nested types.
2024-04-25 18:38:44 +01:00
Jonathan Wakely
6391cf8bd9
libstdc++: Fix typo in Doxygen comment
libstdc++-v3/ChangeLog:

	* include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
2024-04-25 18:38:43 +01:00
Jonathan Wakely
c9cc1c850c
libstdc++: Fix run_doxygen for Doxygen 1.10 man page format
Doxygen switched from \fC to \fR in its man page output:
https://github.com/doxygen/doxygen/pull/10497

This breaks our script that expects \fC so change the regaulr expression
to work with either style.

libstdc++-v3/ChangeLog:

	* scripts/run_doxygen: Adjust sed pattern to match '\fR' for
	new man output that Doxygen 1.10 generates.
2024-04-25 18:38:43 +01:00
Jonathan Wakely
d5b2c6b32c
libstdc++: Update Doxygen config for new headers
libstdc++-v3/ChangeLog:

	* doc/doxygen/stdheader.cc (init_map): Add missing headers.
	* doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
	std::format and std::text_encoding.
2024-04-25 18:38:43 +01:00
Jonathan Wakely
f3021e6e06
libstdc++: Add comment to #include in <variant>
It's not obvious why <variant> needs <bits/parse_numbers.h> so add a
comment to it.

libstdc++-v3/ChangeLog:

	* include/std/variant: Add comment to #include.
2024-04-25 18:38:43 +01:00
GCC Administrator
8c6ee63bcd Daily bump. 2024-04-23 00:17:49 +00:00
Matthias Kretz
7ef139146a libstdc++: Fix conversion of simd to vector builtin
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-22 20:56:26 +02:00
Matthias Kretz
e7a3ad29c9 libstdc++: Silence irrelevant warnings in <experimental/simd>
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-22 20:56:26 +02:00
Jakub Jelinek
cf5f779105 libstdc++: Workaround kernel-headers on s390x-linux
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-22 18:00:06 +02:00
GCC Administrator
90ded7512e Daily bump. 2024-04-20 00:16:57 +00:00
Jonathan Wakely
d86472a6f0
libstdc++: Simplify constraints on <=> for std::reference_wrapper
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-19 21:06:29 +01:00
Jonathan Wakely
eed7fb1b2f
libstdc++: Support link chains in std::chrono::tzdb::locate_zone [PR114770]
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-19 21:06:28 +01:00
GCC Administrator
85c187b212 Daily bump. 2024-04-19 00:17:11 +00:00
Alexandre Oliva
dcf0bd14cd [libstdc++] [testsuite] disable SRA for compare_exchange_padding
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 08:03:56 -03:00
Alexandre Oliva
5b178179e8 [libstdc++] [testsuite] xfail double-prec from_chars for float128_t
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 08:00:56 -03:00
Alexandre Oliva
da3504ae4d [libstdc++] define zoneinfo_dir_override on vxworks
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-18 08:00:52 -03:00
GCC Administrator
69576bc01c Daily bump. 2024-04-18 00:17:43 +00:00
Jonathan Wakely
7c2a9dbcc2
libstdc++: Implement "Printing blank lines with println" for C++23
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-17 17:33:10 +01:00
Matthias Kretz
3cfe94ad28 libstdc++: Add include guard to simd-internal header
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

libstdc++-v3/ChangeLog:

	* include/experimental/bits/numeric_traits.h: Add include guard.
2024-04-17 10:33:56 +02:00
Matthias Kretz
0fc7f3c6ad libstdc++: Avoid ill-formed types on ARM
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-17 10:33:56 +02:00
GCC Administrator
9c7cf5d71f Daily bump. 2024-04-17 00:18:45 +00:00