From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21136 invoked by alias); 12 Oct 2014 14:41:13 -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 21126 invoked by uid 89); 12 Oct 2014 14:41:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f49.google.com Received: from mail-pa0-f49.google.com (HELO mail-pa0-f49.google.com) (209.85.220.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 12 Oct 2014 14:41:11 +0000 Received: by mail-pa0-f49.google.com with SMTP id hz1so4338293pad.8 for ; Sun, 12 Oct 2014 07:41:09 -0700 (PDT) X-Received: by 10.68.222.105 with SMTP id ql9mr935036pbc.161.1413124869874; Sun, 12 Oct 2014 07:41:09 -0700 (PDT) Received: from ShengShiZhuChengdeMacBook-Pro.local ([223.72.65.70]) by mx.google.com with ESMTPSA id iu10sm8674440pbd.57.2014.10.12.07.41.06 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Oct 2014 07:41:08 -0700 (PDT) Message-ID: <543A9464.50308@gmail.com> Date: Sun, 12 Oct 2014 14:41: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: Iain Buclaw CC: gdb-patches@sourceware.org, Pedro Alves , Mark Kettenis Subject: Re: [PATCH v2] gdb/i387-tdep.c: Avoid warning for "-Werror=strict-overflow" References: <543A8208.9060605@gmail.com> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2014-10/txt/msg00297.txt.bz2 On 10/12/14 22:13, Iain Buclaw wrote: > On 12 October 2014 14:28, Chen Gang wrote: >> gdb requires "-Werror", and I387_ST0_REGNUM (tdep) is 'variable', then >> compiler can think that I387_ST0_REGNUM (tdep) may be a large number, >> which may cause issue, so report warning. >> >> Need fix this warning, and still keep the code clear enough for readers. >> The related warning under Darwin with gnu built gcc: >> > > I had noted the same on GCC 5.0.0 development, found that the line > number in the warning was wrong and raised a bug > (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63510), just didn't get > round to submitting a patch for gdb. > But for me, what compiler has done is correct: "-Werror=strict-overflow" need include "(X + c) >= X" for signed overflow. And our case matches this case: int st0_regnum; void i387_supply_fsave () { int i; for (i = st0_regnum; i < st0_regnum + 16;) { } } > >> >> 2014-10-13 Chen Gang >> >> * i387-tdep.c (i387_supply_fsave): Avoid warning for >> "-Werror=strict-overflow" >> --- >> gdb/i387-tdep.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c >> index d66ac6a..609b5be 100644 >> --- a/gdb/i387-tdep.c >> +++ b/gdb/i387-tdep.c >> @@ -450,11 +450,12 @@ i387_supply_fsave (struct regcache *regcache, int regnum, const void *fsave) >> struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); >> enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); >> const gdb_byte *regs = fsave; >> - int i; >> + int i, end; >> > > Also changing from int -> unsigned int fixes the warning. > > -- Iain. > -- Chen Gang Open, share, and attitude like air, water, and life which God blessed