This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][RFC] Bit CCP and pointer alignment propagation


On Fri, 30 Jul 2010, Paolo Bonzini wrote:

> On 07/30/2010 03:39 PM, Richard Guenther wrote:
> > On Fri, 30 Jul 2010, Paolo Bonzini wrote:
> > 
> > > On 07/30/2010 03:15 PM, Richard Guenther wrote:
> > > > I think we can have negative shift counts (at least the constant folding
> > > > code suggests so), this is why I have the code as-is.
> > > 
> > > No, that seems very weird.  Sure expand does not handle it, and the
> > > implementation-defined section of the manual does not mention it.  I'm
> > > more
> > > inclined to consider it a historical wart, given this comment:
> > > 
> > >    /* Previously detected shift-counts computed by NEGATE_EXPR
> > >       and shifted in the other direction; but that does not work
> > >       on all machines.  */
> > > 
> > > dating back to the beginning of the GCC repo.  I wonder what the attached
> > > patch would do.
> > 
> > Maybe - at least with 2<<  -1 we only warn:
> > 
> > t.c:3: warning: left shift count is negative
> > 
> > and happily continue, doing a constant right shift.
> 
> So the patch would crash.  The right solution is probably to change the shift
> count to unsigned and fix the fallout.

Yes.  Btw, the intel compiler warns the same but treats the shift
count unsigned (at least it produces zero, not 1).

Richard.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]