Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751179AbdL0IlQ (ORCPT ); Wed, 27 Dec 2017 03:41:16 -0500 Received: from mail-ua0-f193.google.com ([209.85.217.193]:38383 "EHLO mail-ua0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750947AbdL0IlP (ORCPT ); Wed, 27 Dec 2017 03:41:15 -0500 X-Google-Smtp-Source: ACJfBovtOP+erHWtZxnZDrrgtZPrY1Kmk37q1BY55AGUe7JagrLUgWM6EnWEWIIMod6TpglYe0WH9KtwgOTxyKJhgL0= MIME-Version: 1.0 In-Reply-To: References: <20171226104554.19612-1-malat@debian.org> <20171226104554.19612-2-malat@debian.org> From: Mathieu Malaterre Date: Wed, 27 Dec 2017 09:40:54 +0100 X-Google-Sender-Auth: Hsi7Ns6RpxdABe2pFFyh5vOU6J0 Message-ID: Subject: Re: [PATCH 2/2] MIPS: math-emu: Declare ys variable as possibly unused To: Aleksandar Markovic Cc: Ralf Baechle , Miodrag Dinic , Goran Ferenc , James Hogan , Douglas Leung , "linux-mips@linux-mips.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id vBR8fMXG011645 Content-Length: 3571 Lines: 115 Aleksandar, On Tue, Dec 26, 2017 at 4:12 PM, Aleksandar Markovic wrote: >> Fix non-fatal warning: >> >> arch/mips/math-emu/sp_fdp.c: In function ‘ieee754sp_fdp’: >> arch/mips/math-emu/ieee754int.h:60:31: warning: variable ‘ys’ set but not used [-Wunused-but-set-variable] >> unsigned int ym; int ye; int ys; int yc >> ^ >> arch/mips/math-emu/sp_fdp.c:37:2: note: in expansion of macro ‘COMPYSP’ >> COMPYSP; >> ^~~~~~~ >> >> Signed-off-by: Mathieu Malaterre >> --- >> arch/mips/math-emu/ieee754int.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/mips/math-emu/ieee754int.h b/arch/mips/math-emu/ieee754int.h >> index 06ac0e2ac7ac..cb8f04cd24bf 100644 >> --- a/arch/mips/math-emu/ieee754int.h >> +++ b/arch/mips/math-emu/ieee754int.h >> @@ -57,7 +57,7 @@ static inline int ieee754_class_nan(int xc) >> unsigned int xm; int xe; int xs __maybe_unused; int xc >> >> #define COMPYSP \ >> - unsigned int ym; int ye; int ys; int yc >> + unsigned int ym; int ye; int ys __maybe_unused; int yc >> >> #define COMPZSP \ >> unsigned int zm; int ze; int zs; int zc > > This will silence the warning, but will do it for all future cases of unused > ys too - in other words, it may well silence even useful, valid warnings. > Also, this introduces an inconsistency among COMPXSP, COMPYSP, and COMPZSP > macros. > > A better solution would be to reduce the scope of ys, so that it is always > used, if declared. Instead of this code segment (in arch/mips/math-emu/sp_fdp.c): > > union ieee754sp ieee754sp_fdp(union ieee754dp x) > { > union ieee754sp y; > u32 rm; > > COMPXDP; > COMPYSP; > > EXPLODEXDP; > > ieee754_clearcx(); > > FLUSHXDP; > > switch (xc) { > case IEEE754_CLASS_SNAN: > x = ieee754dp_nanxcpt(x); > EXPLODEXDP; > /* Fall through. */ > case IEEE754_CLASS_QNAN: > y = ieee754sp_nan_fdp(xs, xm); > if (!ieee754_csr.nan2008) { > EXPLODEYSP; > if (!ieee754_class_nan(yc)) > y = ieee754sp_indef(); > } > return y; > > > ... should be the following: (COMPYSP is moved to a smaller code block) > > union ieee754sp ieee754sp_fdp(union ieee754dp x) > { > union ieee754sp y; > u32 rm; > > COMPXDP; > > EXPLODEXDP; > > ieee754_clearcx(); > > FLUSHXDP; > > switch (xc) { > case IEEE754_CLASS_SNAN: > x = ieee754dp_nanxcpt(x); > EXPLODEXDP; > /* Fall through. */ > case IEEE754_CLASS_QNAN: > { > COMPYSP; > > y = ieee754sp_nan_fdp(xs, xm); > if (!ieee754_csr.nan2008) { > EXPLODEYSP; > if (!ieee754_class_nan(yc)) > y = ieee754sp_indef(); > } > return y; > } > Thanks for the suggestion. However the sign bit is still not used, so the warning is still there. Just for clarity did you see that: #define COMPXSP \ unsigned int xm; int xe; int xs __maybe_unused; int xc I'll try to give it some more thoughts, and come up with something hopefully working. -M