lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CA+7wUszosphtNTkSFnRK_JWgKvqDkQ+djmy1f=41-CDW7DoQXw@mail.gmail.com> Date: Wed, 27 Dec 2017 09:40:54 +0100 From: Mathieu Malaterre <malat@...ian.org> To: Aleksandar Markovic <Aleksandar.Markovic@...s.com> Cc: Ralf Baechle <ralf@...ux-mips.org>, Miodrag Dinic <Miodrag.Dinic@...s.com>, Goran Ferenc <goran.ferenc@...tec.com>, James Hogan <jhogan@...nel.org>, Douglas Leung <douglas.leung@...tec.com>, "linux-mips@...ux-mips.org" <linux-mips@...ux-mips.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: Re: [PATCH 2/2] MIPS: math-emu: Declare ys variable as possibly unused Aleksandar, On Tue, Dec 26, 2017 at 4:12 PM, Aleksandar Markovic <Aleksandar.Markovic@...s.com> 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 <malat@...ian.org> >> --- >> 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
Powered by blists - more mailing lists