From patchwork Sun Oct 12 13:28:40 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen Gang X-Patchwork-Id: 3206 Received: (qmail 17364 invoked by alias); 12 Oct 2014 13:22:53 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 17352 invoked by uid 89); 12 Oct 2014 13:22:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f174.google.com Received: from mail-pd0-f174.google.com (HELO mail-pd0-f174.google.com) (209.85.192.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 12 Oct 2014 13:22:50 +0000 Received: by mail-pd0-f174.google.com with SMTP id y13so4143053pdi.19 for ; Sun, 12 Oct 2014 06:22:49 -0700 (PDT) X-Received: by 10.66.65.130 with SMTP id x2mr17491649pas.3.1413120169112; Sun, 12 Oct 2014 06:22:49 -0700 (PDT) Received: from ShengShiZhuChengdeMacBook-Pro.local ([223.72.65.70]) by mx.google.com with ESMTPSA id y9sm1771776pdq.12.2014.10.12.06.22.46 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Oct 2014 06:22:48 -0700 (PDT) Message-ID: <543A8208.9060605@gmail.com> Date: Sun, 12 Oct 2014 21:28:40 +0800 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: gdb-patches@sourceware.org CC: Pedro Alves , Mark Kettenis Subject: [PATCH v2] gdb/i387-tdep.c: Avoid warning for "-Werror=strict-overflow" 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: gcc -g -O2 -I. -I../../binutils-gdb/gdb -I../../binutils-gdb/gdb/common -I../../binutils-gdb/gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I../../binutils-gdb/gdb/../include/opcode -I../../binutils-gdb/gdb/../opcodes/.. -I../../binutils-gdb/gdb/../readline/.. -I../bfd -I../../binutils-gdb/gdb/../bfd -I../../binutils-gdb/gdb/../include -I../libdecnumber -I../../binutils-gdb/gdb/../libdecnumber -I../../binutils-gdb/gdb/gnulib/import -Ibuild-gnulib/import -DTUI=1 -D_THREAD_SAFE -I/usr/local/Cellar/guile/2.0.11/include/guile/2.0 -I/usr/local/Cellar/gmp/6.0.0a/include -I/usr/local/Cellar/readline/6.3.5/include -I/usr/local/Cellar/bdw-gc/7.2e/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wpointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-protot ypes -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral -Werror -c -o i387-tdep.o -MT i387-tdep.o -MMD -MP -MF .deps/i387-tdep.Tpo ../../binutils-gdb/gdb/i387-tdep.c ../../binutils-gdb/gdb/i387-tdep.c: In function 'i387_supply_fsave': ../../binutils-gdb/gdb/i387-tdep.c:447:1: error: assuming signed overflow does not occur when assuming that (X + c) >= X is always true [-Werror=strict-overflow] i387_supply_fsave (struct regcache *regcache, int regnum, const void *fsave) ^ ../../binutils-gdb/gdb/i387-tdep.c: In function 'i387_collect_fsave': ../../binutils-gdb/gdb/i387-tdep.c:502:1: error: assuming signed overflow does not occur when assuming that (X + c) >= X is always true [-Werror=strict-overflow] i387_collect_fsave (const struct regcache *regcache, int regnum, void *fsave) ^ cc1: all warnings being treated as errors 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; gdb_assert (tdep->st0_regnum >= I386_ST0_REGNUM); - for (i = I387_ST0_REGNUM (tdep); i < I387_XMM0_REGNUM (tdep); i++) + end = I387_XMM0_REGNUM (tdep); /* -Werror=strict-overflow for (X + c) >= X */ + for (i = I387_ST0_REGNUM (tdep); i < end; i++) if (regnum == -1 || regnum == i) { if (fsave == NULL) @@ -503,11 +504,12 @@ i387_collect_fsave (const struct regcache *regcache, int regnum, void *fsave) { struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache)); gdb_byte *regs = fsave; - int i; + int i, end; gdb_assert (tdep->st0_regnum >= I386_ST0_REGNUM); - for (i = I387_ST0_REGNUM (tdep); i < I387_XMM0_REGNUM (tdep); i++) + end = I387_XMM0_REGNUM (tdep); /* -Werror=strict-overflow for (X + c) >= X */ + for (i = I387_ST0_REGNUM (tdep); i < end; i++) if (regnum == -1 || regnum == i) { /* Most of the FPU control registers occupy only 16 bits in