Date: Thu, 18 Mar 2004 00:41:28 -0800 From: Marcel Moolenaar <marcel@xcllnt.net> To: Ruslan Ermilov <ru@FreeBSD.org> Cc: ia64@FreeBSD.org Subject: Re: [current tinderbox] failure on ia64/ia64 Message-ID: <20040318084128.GA59199@dhcp01.pn.xcllnt.net> In-Reply-To: <20040317213014.GB46747@ip.net.ua> References: <20040317040254.386947303A@freebsd-current.sentex.ca> <xzpad2fhixn.fsf@dwp.des.no> <20040317113931.GF49920@ip.net.ua> <20040317200307.GA46126@ip.net.ua> <20040317205104.GA29066@dhcp01.pn.xcllnt.net> <20040317213014.GB46747@ip.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 17, 2004 at 11:30:14PM +0200, Ruslan Ermilov wrote: > On Wed, Mar 17, 2004 at 12:51:04PM -0800, Marcel Moolenaar wrote: > > On Wed, Mar 17, 2004 at 10:03:07PM +0200, Ruslan Ermilov wrote: > > > > > > > > > > for(i = 0; i < SOUND_MIXER_NRDEVICES; i++) { > > > > > if ((1 << i) & mask) { > > > > > v |= mt[i].iselect; > > > > > } > > > > > } > > > > > > > > > > > > Actually, this is easily reproduceable by compiling the corresponding > > > module on pluto1 with CFLAGS="-O2 -pipe" set in environment. There's > > > clearly a bug in gcc(1), as: > > > > What happens if you replace the for-loop with an equivalent while-loop? > > > Doesn't make any difference. sparc64 and amd64 do not exhibit this problem. > (Yes, I tested this on amd64 as well, skipping the final ld(1) step of the > module's build.) The source code appears to be fishy. The variable v is never used. It's only defined. If you change the "return mask" to a "return v", the warning goes away. -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040318084128.GA59199>