This rule is a strict implementation of a MISRA (Motor Industry Software Reliability Association) rule. MISRA defines best practices for developing safety-critical software. You can learn more about this rule in the MISRA documents referenced below.
* MISRA {cpp} 2008, 5-8-1 - The right hand operand of a shift operator shall lie between zero and one less than the width in bits of the _underlying type_ of the left hand operand.