From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2389 invoked by alias); 4 Oct 2014 05:12:40 -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 2368 invoked by uid 89); 4 Oct 2014 05:12:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-pd0-f170.google.com Received: from mail-pd0-f170.google.com (HELO mail-pd0-f170.google.com) (209.85.192.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 04 Oct 2014 05:12:38 +0000 Received: by mail-pd0-f170.google.com with SMTP id p10so628440pdj.1 for ; Fri, 03 Oct 2014 22:12:35 -0700 (PDT) X-Received: by 10.66.124.202 with SMTP id mk10mr11205794pab.1.1412399555700; Fri, 03 Oct 2014 22:12:35 -0700 (PDT) Received: from ShengShiZhuChengdeMacBook-Pro.local ([223.72.65.6]) by mx.google.com with ESMTPSA id i12sm7822435pbq.0.2014.10.03.22.12.31 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Oct 2014 22:12:34 -0700 (PDT) Message-ID: <542F831D.1000502@gmail.com> Date: Sat, 04 Oct 2014 05:12:00 -0000 From: Chen Gang User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.1.2 MIME-Version: 1.0 To: Pedro Alves , Joel Brobecker CC: Mark Kettenis , amodra@gmail.com, gbenson@redhat.com, michael.sturm@intel.com, walfred.tedeschi@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 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-10/txt/msg00080.txt.bz2 On 10/4/14 1:49, Pedro Alves wrote: > On 10/03/2014 05:44 PM, Joel Brobecker wrote: >>>> Sorry, but obfuscating code to make compilers happy is *not* the way to 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 = 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 = 0; i < i < I387_NUM_ST_REGS; i++) > { > int r = I387_ST0_REGNUM (tdep) + i; > > ... use 'r' instead of 'i' ... > } > OK, thanks. It is really one way, it is a little better than my original way. But for me, it is still not a good idea: it introduces a new macro and a new variable for each area (originally, it is only one statement). For me, "-Werror" need always be optional, but not mandatory. Compiler is our helper, but we are in charge of the final code. So we should notice about all compiler's 'advice'. Commonly, 'advice' is always valuable, but may not always be suitable for oneself. Thanks. -- Chen Gang Open, share, and attitude like air, water, and life which God blessed