Re: [PATCH] x86: sparse errors from string_32.h

From: Harvey Harrison
Date: Fri Feb 01 2008 - 19:40:34 EST


On Fri, 2008-02-01 at 10:06 -0800, H. Peter Anvin wrote:
> Ingo Molnar wrote:
> > * Harvey Harrison <harvey.harrison@xxxxxxxxx> wrote:
> >
> >> case 1:
> >> - *(unsigned char *)s = pattern;
> >> + *(unsigned char *)s = pattern & 0xff;
> >
> > i've applied your fix - but wouldnt it be cleaner to just cast the
> > pattern variable to unsigned char instead?
> >
>
> Even better, since we're talking about fixed bytes, I suggest writing it as:
>
> *(u8 *)s = (u8)pattern;
>
> Much more compact and the intent is a little bit more obvious.
>

While I agree that is cleaner, that will still produce sparse warnings
about a cast truncating bits from a constant value. I think that
explicit & is necessary (unless the cure is worse than the disease).

Harvey

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/