warning: right shift count >= width of type

Dale Johannesen dalej@apple.com
Mon Nov 29 19:17:00 GMT 2004


On Nov 29, 2004, at 10:51 AM, Andrew Haley wrote:
>>   I myself would want "(n >> 32)" to produce the same result as "((n 
>> >> 16)
>>>> 16)" and indeed "for (int i = 32; i > 0; i--, n >>= 1) ;", and it 
>>>> seems
>> to be generally agreed that the compiler would be at liberty to so do 
>> if it
>> wants to.
>
> But you could never depend on it.  If it only works when the shift
> count is a constant, a failure to do constant folding would break it.

Or constant propagation, or inlining, or ...



More information about the Gcc mailing list