This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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.