From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9757 invoked by alias); 28 Jun 2014 10:31:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 9737 invoked by uid 89); 28 Jun 2014 10:31:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,MSGID_FROM_MTA_HEADER,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e06smtp15.uk.ibm.com Received: from e06smtp15.uk.ibm.com (HELO e06smtp15.uk.ibm.com) (195.75.94.111) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sat, 28 Jun 2014 10:31:38 +0000 Received: from /spool/local by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 28 Jun 2014 11:31:35 +0100 Received: from d06dlp02.portsmouth.uk.ibm.com (9.149.20.14) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Sat, 28 Jun 2014 11:31:34 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 923AF2190042 for ; Sat, 28 Jun 2014 11:31:21 +0100 (BST) Received: from d06av02.portsmouth.uk.ibm.com (d06av02.portsmouth.uk.ibm.com [9.149.37.228]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s5SAVXKV31654050 for ; Sat, 28 Jun 2014 10:31:33 GMT Received: from d06av02.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s5SAVXgU014791 for ; Sat, 28 Jun 2014 04:31:33 -0600 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with SMTP id s5SAVW8T014778; Sat, 28 Jun 2014 04:31:32 -0600 Message-Id: <201406281031.s5SAVW8T014778@d06av02.portsmouth.uk.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Sat, 28 Jun 2014 12:31:31 +0200 Subject: [commit] Fix ABI fallout (Re: wide-int, rs6000) To: mikestump@comcast.net (Mike Stump) Date: Sat, 28 Jun 2014 10:31:00 -0000 From: "Ulrich Weigand" Cc: zadeck@naturalbridge.com (Kenneth Zadeck), gcc-patches@gcc.gnu.org (GCC Patches), dje.gcc@gmail.com (David Edelsohn) In-Reply-To: <52206F9F-3BFD-44E5-91AA-C4250D9C681C@comcast.net> from "Mike Stump" at Nov 26, 2013 02:46:44 PM MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14062810-0342-0000-0000-000000434C10 X-SW-Source: 2014-06/txt/msg02286.txt.bz2 Mike Stump wrote: > (rs6000_aggregate_candidate): Use wide-int interfaces. [snip] > - /* Can't handle incomplete types. */ > - if (!COMPLETE_TYPE_P (type)) > - return -1; > + /* Can't handle incomplete types nor sizes that are not > + fixed. */ > + if (!COMPLETE_TYPE_P (type) > + || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) > This patch introduced an accidental change: the "return -1;" line was deleted. This influences certain ABI decisions, e.g. whether a union of two vector types is supposed to be passed in a VR or in GPRs. (Noticed by running the ABI compatibility test suite.) Fortunately, this bug never made it into any (FSF or distribtion) GCC release, so we can simply fix it now without introducing any incompatibilities ... I've checked in the following patch as obvious. Bye, Ulrich ChangeLog: 2014-06-28 Ulrich Weigand * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert accidental change due to wide-int branch merge. Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 212069) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -8766,6 +8766,7 @@ fixed. */ if (!COMPLETE_TYPE_P (type) || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) + return -1; for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { -- Dr. Ulrich Weigand GNU/Linux compilers and toolchain Ulrich.Weigand@de.ibm.com