svn commit: r328159 - head/sys/modules

Warner Losh imp at bsdimp.com
Fri Jan 19 18:42:34 UTC 2018


On Fri, Jan 19, 2018 at 11:31 AM, Conrad Meyer <cem at freebsd.org> wrote:

> On Fri, Jan 19, 2018 at 9:51 AM, John Baldwin <jhb at freebsd.org> wrote:
> > On Friday, January 19, 2018 04:34:06 AM Conrad Meyer wrote:
> >>   The logical result of a right shift >= the width of a type is zero,
> but our
> >>   compiler decides this is a warning (and thus, error).  Just remove
> ccp(4)
> >>   from i386.
> >
> > You would think that.  The shift instructions on x86 effectively ignore
> the
> > upper bits of the count, so a 33-bit shift on i386 ends up being a 1-bit
> shift,
> > etc. IIRC.
>
> This never becomes a shift instruction on x86 or any other arch — it's
> a constant before it reaches machine code
>

I think what John is getting at is that one's notions of what a logical
shift left should do should be tempered with real world experience which
says they don't behave that way always...

I do hope we're all in violent agreement that, no matter how crazy we think
it might be, avoiding the UB zone as much as possible is generally
desirable. It certainly is in this case.

Warner


More information about the svn-src-head mailing list