This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".
The branch, master has been updated
via f1d2be6c9fcc52d676266e7ede123953d150aaf3 (commit)
from 01424bc265a033851b93d0ce0e84df3ce519f429 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f1d2be6c9fcc52d676266e7ede123953d150aaf3
Author: Jonathan Wakely
array_allocator
extensions
have been removed from libstdc++.
@@ -409,6 +415,39 @@ int get_naïve_pi() {
The attribute deprecated
can now be used on
namespace
s too.
[[no_unique_address]]
attribute) where all other non-static
+ data members have the same type (this is called a "homogeneous aggregate"
+ in some ABI specifications, or if there is only one such member,
+ a "single element").
+ In -std=c++17
and -std=c++20
modes, classes with
+ an empty base class were not considered to have a single element or
+ to be a homogeneous aggregate, and so could be passed differently
+ (in the wrong registers or at the wrong stack address). This could make
+ code compiled with -std=c++17
and -std=c++14
+ ABI incompatible. This has been corrected and the empty bases are
+ ignored in those ABI decisions, so functions compiled with
+ -std=c++14
and -std=c++17
are now ABI compatible
+ again.
+ Example:
+ struct empty {}; struct S : empty { float f; }; void f(S);
.
+ Similarly, in classes containing non-static data members with empty
+ class types using the C++20 [[no_unique_address]]
attribute,
+ those members weren't ignored in the ABI argument passing decisions
+ as they should be. Both of these ABI changes are now diagnosed with
+ -Wpsabi
.
+