Date: Tue, 13 Jan 2004 20:33:05 +0100 From: Stefan Farfeleder <stefan@fafoe.narf.at> To: Dag-Erling Smorgrav <des@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/libkern ffs.c ffsl.c fls.c flsl.c Message-ID: <20040113193300.GB626@wombat.fafoe.narf.at> In-Reply-To: <200401131602.i0DG2Khx064321@repoman.freebsd.org> References: <200401131602.i0DG2Khx064321@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jan 13, 2004 at 08:02:20AM -0800, Dag-Erling Smorgrav wrote: > des 2004/01/13 08:02:20 PST > > FreeBSD src repository > > Modified files: > sys/libkern ffs.c ffsl.c fls.c flsl.c > Log: > Cast to unsigned to avoid sign-extension problems. > > Revision Changes Path > 1.9 +1 -1 src/sys/libkern/ffs.c > 1.2 +1 -1 src/sys/libkern/ffsl.c > 1.2 +1 -1 src/sys/libkern/fls.c > 1.2 +1 -1 src/sys/libkern/flsl.c @@ -47,6 +47,6 @@ ffs(int mask) if (mask == 0) return (0); for (bit = 1; !(mask & 1); bit++) - mask >>= 1; + (unsigned int)mask >>= 1; return (bit); } This is an ugly GCC extension. Might I suggest using the portable mask = (unsigned int)mask >> 1; instead? Regards, Stefan Farfeleder
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040113193300.GB626>