svn commit: r328159 - head/sys/modules

Conrad Meyer cem at freebsd.org
Fri Jan 19 18:35:58 UTC 2018


On Fri, Jan 19, 2018 at 9:37 AM, Rodney W. Grimes
<freebsd at pdx.rh.cn85.dnsmgr.net> wrote:
> If you think in assembler it is easy to understand why this is UB,
> most (all) architectures Right Logic or Arithmetic Shift only accept an
> operand that is a size that can hold log2(wordsize).

This is a logical right shift by a constant larger than the width of
the left operand.  As a result, it would a constant zero in any
emitted machine code.  It is a bug in the C standard and a concession
to naive, non-optimizing compilers that this is considered UB.


More information about the svn-src-all mailing list