Fix warnings in mprec.c

Andreas Jaeger aj@suse.de
Sat May 21 14:03:00 GMT 2005



One of the files with the most warnings is mprec.c, it generates the
following warnings:

/cvs/gcc/libjava/java/lang/mprec.c: In function ‘_Jv_mult’:
/cvs/gcc/libjava/java/lang/mprec.c:388: warning: suggest parentheses around assignment used as truth value
/cvs/gcc/libjava/java/lang/mprec.c: In function ‘_Jv_lshift’:
/cvs/gcc/libjava/java/lang/mprec.c:491: warning: suggest parentheses around arithmetic in operand of |
/cvs/gcc/libjava/java/lang/mprec.c:495: warning: suggest parentheses around assignment used as truth value
/cvs/gcc/libjava/java/lang/mprec.c: In function ‘_Jv_b2d’:
/cvs/gcc/libjava/java/lang/mprec.c:721: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:721: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:724: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:724: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:724: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:730: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:730: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:732: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c: In function ‘_Jv_d2b’:
/cvs/gcc/libjava/java/lang/mprec.c:815: warning: suggest parentheses around assignment used as truth value
/cvs/gcc/libjava/java/lang/mprec.c:817: warning: suggest parentheses around assignment used as truth value
/cvs/gcc/libjava/java/lang/mprec.c:820: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:820: warning: suggest parentheses around arithmetic in operand of |
/cvs/gcc/libjava/java/lang/mprec.c:821: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:828: warning: suggest parentheses around + or - inside shift
/cvs/gcc/libjava/java/lang/mprec.c:828: warning: suggest parentheses around arithmetic in operand of |
/cvs/gcc/libjava/java/lang/mprec.c:830: warning: suggest parentheses around + or - inside shift

The appended patch fixes all of them.

I checked that the generated assembler code is the same with and
without my change.

I'll do a complete build and regression test now on x86_64-linux-gnu.
Ok to commit if it passes?

Andreas

2005-05-21  Andreas Jaeger  <aj@suse.de>

	* java/lang/mprec.c (mult, lshift, b2d, d2b): Add parenthesis to
	avoid warnings.

Index: mprec.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/mprec.c,v
retrieving revision 1.2
diff -u -p -r1.2 mprec.c
--- mprec.c	21 Sep 2001 07:46:32 -0000	1.2
+++ mprec.c	21 May 2005 09:16:16 -0000
@@ -385,7 +385,7 @@ _DEFUN (mult, (ptr, a, b), struct _Jv_re
 #else
   for (; xb < xbe; xc0++)
     {
-      if (y = *xb++)
+      if ((y = *xb++))
 	{
 	  x = xa;
 	  xc = xc0;
@@ -488,11 +488,11 @@ _DEFUN (lshift, (ptr, b, k), struct _Jv_
       z = 0;
       do
 	{
-	  *x1++ = *x << k & 0xffff | z;
+	  *x1++ = (*x << k & 0xffff) | z;
 	  z = *x++ >> k1;
 	}
       while (x < xe);
-      if (*x1 = z)
+      if ((*x1 = z))
 	++n1;
     }
 #endif
@@ -718,18 +718,18 @@ _DEFUN (b2d, (a, e),
   if (k < Ebits + 16)
     {
       z = xa > xa0 ? *--xa : 0;
-      d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k;
+      d0 = Exp_1 | y << (k - Ebits) | z >> (Ebits + 16 - k);
       w = xa > xa0 ? *--xa : 0;
       y = xa > xa0 ? *--xa : 0;
-      d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k;
+      d1 = z << (k + 16 - Ebits) | w << (k - Ebits) | y >> (16 + Ebits - k);
       goto ret_d;
     }
   z = xa > xa0 ? *--xa : 0;
   w = xa > xa0 ? *--xa : 0;
   k -= Ebits + 16;
-  d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k;
+  d0 = Exp_1 | y << (k + 16) | z << k | w >> (16 - k);
   y = xa > xa0 ? *--xa : 0;
-  d1 = w << k + 16 | y << k;
+  d1 = w << (k + 16) | y << k;
 #endif
 ret_d:
 #ifdef VAX
@@ -812,22 +812,22 @@ _DEFUN (d2b,
 #endif
     }
 #else
-  if (y = d1)
+  if ((y = d1))
     {
-      if (k = lo0bits (&y))
+      if ((k = lo0bits (&y)))
 	if (k >= 16)
 	  {
-	    x[0] = y | z << 32 - k & 0xffff;
-	    x[1] = z >> k - 16 & 0xffff;
+	    x[0] = y | (z << (32 - k) & 0xffff);
+	    x[1] = z >> (k - 16) & 0xffff;
 	    x[2] = z >> k;
 	    i = 2;
 	  }
 	else
 	  {
 	    x[0] = y & 0xffff;
-	    x[1] = y >> 16 | z << 16 - k & 0xffff;
+	    x[1] = (y >> 16 | z << (16 - k)) & 0xffff;
 	    x[2] = z >> k & 0xffff;
-	    x[3] = z >> k + 16;
+	    x[3] = z >> (k + 16);
 	    i = 3;
 	  }
       else
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20050521/5996119a/attachment.sig>
-------------- next part --------------

-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SUSE Linux Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20050521/5996119a/attachment-0001.sig>


More information about the Java-patches mailing list