From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id B9E973858405; Wed, 30 Mar 2022 11:16:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9E973858405 To: gcc-cvs-wwwdocs@gcc.gnu.org Subject: gcc-wwwdocs branch master updated. 3be1a28f58d6063258407b0751e8fb55df4749c8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: caa5dc6995aac2c7dc1a139e1a021927faaf73eb X-Git-Newrev: 3be1a28f58d6063258407b0751e8fb55df4749c8 Message-Id: <20220330111631.B9E973858405@sourceware.org> Date: Wed, 30 Mar 2022 11:16:31 +0000 (GMT) From: Jakub Jelinek X-BeenThere: gcc-cvs-wwwdocs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs-wwwdocs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2022 11:16:31 -0000 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 3be1a28f58d6063258407b0751e8fb55df4749c8 (commit) from caa5dc6995aac2c7dc1a139e1a021927faaf73eb (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 3be1a28f58d6063258407b0751e8fb55df4749c8 Author: Jakub Jelinek Date: Wed Mar 30 13:16:18 2022 +0200 Document zero width bitfield ABI changes. diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index 689feeba..f82f1a97 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -28,6 +28,31 @@ a work-in-progress.

Caveats

    +
  • + An ABI incompatibility between C and + C++ when passing or returning by value certain aggregates containing zero + width bit-fields has been discovered on various targets. + As mentioned in PR102024, + since the PR42217 fix in + GCC 4.5 the C++ front-end has been removing zero width bit-fields + from the internal representation of the aggregates after the layout of those + aggregates, but the C front-end kept them, so passing e.g. + struct S { float a; int : 0; float b; } or + struct T { float c; int : 0; } by value could differ + between C and C++. Starting with GCC 12 the C++ front-end no longer + removes those bit-fields from the internal representation and + per clarified psABI some targets have been changed, so that they + either ignore those bit-fields in the argument passing by value + decisions in both C and C++, or they always take them into account. + x86-64, ARM and AArch64 will always ignore them (so there is + a C ABI incompatibility between GCC 11 and earlier with GCC 12 or + later), PowerPC64 ELFv2 and S/390 always take them into account + (so there is a C++ ABI incompatibility, GCC 4.4 and earlier compatible + with GCC 12 or later, incompatible with GCC 4.5 through GCC 11). + RISC-V has changed the handling of these already starting with GCC 10. + GCC 12 on the above targets will report such incompatibilities as + warnings or other diagnostics unless -Wno-psabi is used. +
  • C: Computed gotos require a pointer type now. ----------------------------------------------------------------------- Summary of changes: htdocs/gcc-12/changes.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) hooks/post-receive -- gcc-wwwdocs