From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4841 invoked by alias); 9 Oct 2014 10:06:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 4824 invoked by uid 89); 9 Oct 2014 10:06:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mga01.intel.com Received: from mga01.intel.com (HELO mga01.intel.com) (192.55.52.88) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 09 Oct 2014 10:06:40 +0000 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 09 Oct 2014 03:05:55 -0700 X-ExtLoop1: 1 Received: from wtedesch-mobl2.ger.corp.intel.com (HELO [172.28.205.47]) ([172.28.205.47]) by fmsmga001.fm.intel.com with ESMTP; 09 Oct 2014 03:05:53 -0700 Message-ID: <54365E01.6060800@intel.com> Date: Thu, 09 Oct 2014 10:06:00 -0000 From: Walfred Tedeschi User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: michael.sturm@intel.com CC: Mark Kettenis , amodra@gmail.com, gbenson@redhat.com, michael.sturm@intel.com, binutils@sourceware.org, gdb-patches@sourceware.org Subject: Re: [PATCH] gdb/i387-tdep.c: Avoid warning for "-Werror=strict-overflow" References: <542EC11C.3020406@gmail.com> <201410031546.s93FknOM002165@glazunov.sibelius.xs4all.nl> <542EC9FC.8050107@gmail.com> <20141003164420.GK6927@adacore.com> <542EE1BF.7060203@redhat.com> In-Reply-To: <542EE1BF.7060203@redhat.com> Content-Type: text/plain; charset="windows-1252"; format="flowed" Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2014-10/txt/msg00188.txt.bz2 Am 10/3/2014 7:49 PM, schrieb Pedro Alves: > On 10/03/2014 05:44 PM, Joel Brobecker wrote: >>>> Sorry, but obfuscating code to make compilers happy is *not* the way t= o go. >>>> >>> OK, I can understand, but for me, these is no other better ways for it, >>> except let gdb give up "-Werror" (if always need "--disable-werror" >>> during "configure"). >> I have to agree with Mark on this one, the proposed solution looks >> awful. There has to be another way. Maybe declaring a local constant >> whose value is I387_XMM0_REGNUM (tdep)? > Likely, after transformations and intra-procedural analyses, gcc would > end up with the same. > > This: > > for (i =3D I387_ST0_REGNUM (tdep); i < I387_XMM0_REGNUM (tdep); i++) > > always iterates exactly 16 times, because I387_XMM0_REGNUM > is defined like: > > #define I387_XMM0_REGNUM(tdep) (I387_ST0_REGNUM (tdep) + 16) > > An alternative I think might work would be to give that magic > 16 constant a name, say: > > #define I387_NUM_ST_REGS 16 > > and then do: > > for (i =3D 0; i < i < I387_NUM_ST_REGS; i++) > { > int r =3D I387_ST0_REGNUM (tdep) + i; > > ... use 'r' instead of 'i' ... > } > > Thanks, > Pedro Alves > Later on we have introduced the _END macros, as can be seen on i387-tdep.h. Creating one or two of them migh be a good idea to homogeinize the way=20 we handle the registers. This will finally also join together all ideas presented before in only one. Using the end will then make for (i =3D I387_ST0_REGNUM (tdep); i < I387_XMM0_REGNUM (tdep); i++) to be for (i =3D I387_ST0_REGNUM (tdep); i < I387_STEND_REGNUM (tdep); i++) We also define the number of regs for every technology in that file. Thanks and regards, -Fred and Michael Intel GmbH Dornacher Strasse 1 85622 Feldkirchen/Muenchen, Deutschland Sitz der Gesellschaft: Feldkirchen bei Muenchen Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk Registergericht: Muenchen HRB 47456 Ust.-IdNr./VAT Registration No.: DE129385895 Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052