m68k/math-emu: unsigned issue, 'unsigned long' will never be less than zero
authorChen Gang <gang.chen@asianux.com>
Thu, 30 May 2013 08:21:36 +0000 (16:21 +0800)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 24 Jun 2013 17:44:19 +0000 (19:44 +0200)
'oldmant.m32[1]' is 'unsigned long' which can never be '< 0', and the
original author wanted to check whether the highest bit is set.

So make the bit test explicit (which is better than casting from 'unsigned
long' to 'long').

The related warning: (with EXTRA_CFLAGS=-W ARCH=m68k for allmodconfig)
  arch/m68k/math-emu/fp_arith.c:522:4: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]

Signed-off-by: Chen Gang <gang.chen@asianux.com>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/math-emu/fp_arith.c

index 08f286d..239eb19 100644 (file)
@@ -519,7 +519,7 @@ static void fp_roundint(struct fp_ext *dest, int mode)
                                return;
                        break;
                case 0x401e:
-                       if (!(oldmant.m32[1] >= 0))
+                       if (oldmant.m32[1] & 0x80000000)
                                return;
                        if (oldmant.m32[0] & 1)
                                break;