From patchwork Wed Mar 30 10:07:55 2022
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Jakub Jelinek
X-Patchwork-Id: 1611013
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: bilbo.ozlabs.org;
dkim=pass (1024-bit key;
unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256
header.s=default header.b=eCW7on0Q;
dkim-atps=neutral
Authentication-Results: ozlabs.org;
spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org
(client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org;
envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org;
receiver=)
Received: from sourceware.org (server2.sourceware.org
[IPv6:2620:52:3:1:0:246e:9693:128c])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest
SHA256)
(No client certificate requested)
by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KT2Fp5K6vz9sFq
for ; Wed, 30 Mar 2022 21:08:46 +1100 (AEDT)
Received: from server2.sourceware.org (localhost [IPv6:::1])
by sourceware.org (Postfix) with ESMTP id 84944385840C
for ; Wed, 30 Mar 2022 10:08:44 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 84944385840C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org;
s=default; t=1648634924;
bh=c8AHrG5+NtLMfUo2BbM7+wwfdN45CUr3IRfhJNc+9CM=;
h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=eCW7on0Q7Bv5x4qvHmJFLb91+fTMP45rVFD6CBds+xly5SQUkTPbsK8iFAPPzxvwl
+Dm2Y7XFylwi6Armvjd99t4mDvLO+zWDVb2Hw1P5FTj+H9Ood2X5Kx0V9lI0WioF79
AGNg9h1yXjke6R1MQZKPxdUBBhb7q9Q45b/z3EOA=
X-Original-To: gcc-patches@gcc.gnu.org
Delivered-To: gcc-patches@gcc.gnu.org
Received: from us-smtp-delivery-124.mimecast.com
(us-smtp-delivery-124.mimecast.com [170.10.129.124])
by sourceware.org (Postfix) with ESMTPS id 80C8F385840C
for ; Wed, 30 Mar 2022 10:08:03 +0000 (GMT)
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 80C8F385840C
Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com
[66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS
(version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
us-mta-455-1CcDa8TWOVmE9M4pbEWNXA-1; Wed, 30 Mar 2022 06:07:59 -0400
X-MC-Unique: 1CcDa8TWOVmE9M4pbEWNXA-1
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com
[10.11.54.8])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9C8273C021AD;
Wed, 30 Mar 2022 10:07:58 +0000 (UTC)
Received: from tucnak.zalov.cz (unknown [10.39.192.15])
by smtp.corp.redhat.com (Postfix) with ESMTPS id 54B43C07F48;
Wed, 30 Mar 2022 10:07:58 +0000 (UTC)
Received: from tucnak.zalov.cz (localhost [127.0.0.1])
by tucnak.zalov.cz (8.16.1/8.16.1) with ESMTPS id 22UA7tLF158511
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);
Wed, 30 Mar 2022 12:07:56 +0200
Received: (from jakub@localhost)
by tucnak.zalov.cz (8.16.1/8.16.1/Submit) id 22UA7tKW158510;
Wed, 30 Mar 2022 12:07:55 +0200
Date: Wed, 30 Mar 2022 12:07:55 +0200
To: gcc-patches@gcc.gnu.org
Subject: [wwwdocs] Document zero width bit-field passing ABI changes in
gcc-12/changes.html [PR104796]
Message-ID:
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Disposition: inline
X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH,
DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0,
KAM_SHORT,
RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,
SPF_NONE, TXREP,
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
server2.sourceware.org
X-BeenThere: gcc-patches@gcc.gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Gcc-patches mailing list
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-Patchwork-Original-From: Jakub Jelinek via Gcc-patches
From: Jakub Jelinek
Reply-To: Jakub Jelinek
Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org
Sender: "Gcc-patches"
Hi!
This patch documents the PR102024 ABI changes.
The x86-64, ARM and AArch64 backends refer to this in their -Wpsabi
diagnostics.
Ok for wwwdocs?
Jakub
diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html
index 689feeba..dc0e4074 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 with 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.