Messages in this thread | | | Date | Thu, 30 May 2013 16:08:54 +0800 | From | Chen Gang <> | Subject | Re: [PATCH] arch: m68k: math-emu: unsigned issue, 'unsigned long' will never be less than zero. |
| |
On 05/30/2013 03:09 PM, Andreas Schwab wrote: > Chen Gang <gang.chen@asianux.com> writes: > >> > 'oldmant.m32[1]' is 'unsigned long' which never '< 0', and the original >> > author wanted to check the highest bit whether set. >> > >> > So need type cast form 'unsigned long' to 'long'. > Better to make the bit test explicit, since it is not a sign bit. >
That sounds good.
>> > diff --git a/arch/m68k/math-emu/fp_arith.c b/arch/m68k/math-emu/fp_arith.c >> > index 08f286d..ef013c5 100644 >> > --- a/arch/m68k/math-emu/fp_arith.c >> > +++ b/arch/m68k/math-emu/fp_arith.c >> > @@ -519,7 +519,7 @@ static void fp_roundint(struct fp_ext *dest, int mode) >> > return; >> > break; >> > case 0x401e: >> > - if (!(oldmant.m32[1] >= 0)) >> > + if (!((long)oldmant.m32[1] >= 0)) > if (oldmant.m32[1] & 0x80000000)
OK, I will send patch v2.
Thanks. -- Chen Gang
Asianux Corporation
| |