[current tinderbox] failure on ia64/ia64

Ruslan Ermilov ru at freebsd.org
Thu Mar 18 01:06:23 PST 2004


On Thu, Mar 18, 2004 at 12:41:28AM -0800, Marcel Moolenaar wrote:
> 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.
> 
But other *_setrecsrc() methods return "mask" too.  It looks like it computes
something but doesn't use that computed value to program the device, as other
*_setrecsrc() methods do.  (Still, gcc(1) is buggy here.)


Cheers,
-- 
Ruslan Ermilov
FreeBSD committer
ru at FreeBSD.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ia64/attachments/20040318/554f8dc7/attachment.bin


More information about the freebsd-ia64 mailing list