svn commit: r195400 - projects/mips/sys/libkern

Warner Losh imp at FreeBSD.org
Mon Jul 6 08:00:27 UTC 2009


Author: imp
Date: Mon Jul  6 08:00:26 2009
New Revision: 195400
URL: http://svn.freebsd.org/changeset/base/195400

Log:
  Be more pedantic here.  If we're going to shift something
  sizeof(long)*8 / 2 bits, then we better make sure we're shifting a
  long that much, not an int.
  
  # I'm surprised this is code would have a bug this basic.

Modified:
  projects/mips/sys/libkern/qdivrem.c
  projects/mips/sys/libkern/quad.h

Modified: projects/mips/sys/libkern/qdivrem.c
==============================================================================
--- projects/mips/sys/libkern/qdivrem.c	Mon Jul  6 07:49:24 2009	(r195399)
+++ projects/mips/sys/libkern/qdivrem.c	Mon Jul  6 08:00:26 2009	(r195400)
@@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$");
 
 #include <libkern/quad.h>
 
-#define	B	(1 << HALF_BITS)	/* digit base */
+#define	B	(1UL << HALF_BITS)	/* digit base */
 
 /* Combine two `digits' to make a single two-digit number. */
 #define	COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b))

Modified: projects/mips/sys/libkern/quad.h
==============================================================================
--- projects/mips/sys/libkern/quad.h	Mon Jul  6 07:49:24 2009	(r195399)
+++ projects/mips/sys/libkern/quad.h	Mon Jul  6 08:00:26 2009	(r195400)
@@ -94,7 +94,7 @@ union uu {
  * (sizeof(long)*CHAR_BIT/2).
  */
 #define	HHALF(x)	((x) >> HALF_BITS)
-#define	LHALF(x)	((x) & ((1 << HALF_BITS) - 1))
+#define	LHALF(x)	((x) & ((1UL << HALF_BITS) - 1))
 #define	LHUP(x)		((x) << HALF_BITS)
 
 typedef unsigned int	qshift_t;


More information about the svn-src-projects mailing list