warning: right shift count >= width of type

Dave Korn dk@artimi.com
Mon Nov 29 19:54:00 GMT 2004


> -----Original Message-----
> From: Dale Johannesen 
> Sent: 29 November 2004 18:57

> 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 ...
> 

Ah.  Good point.

Of course, in such cases, the compiler will also fail to produce the warning
message too.......


    cheers, 
      DaveK
-- 
Can't think of a witty .sigline today....



More information about the Gcc mailing list