On Mon, Aug 04, 2014 at 02:36:12PM +0200, Marc Glisse wrote:
> On Mon, 4 Aug 2014, Marek Polacek wrote:
> 
> >On Mon, Aug 04, 2014 at 12:51:06PM +0200, Richard Biener wrote:
> >>On Mon, 4 Aug 2014, Marc Glisse wrote:
> >>
> >>>On Mon, 4 Aug 2014, Marek Polacek wrote:
> >>>
> >>>>+/* { dg-do compile } */
> >>>>+
> >>>>+void
> >>>>+foo (void)
> >>>>+{
> >>>>+  volatile __PTRDIFF_TYPE__ t;
> >>>>+  int i;
> >>>>+  int *p = &i;
> >>>>+  int *q = &i + 1;
> >>>>+  t = q - (q - 1);
> >>>>+  t = (q - 1) - q; /* { dg-warning "integer overflow in expression" } */
> >>>>+  t = p - (p - 1);
> >>>>+  t = (p - 1) - p ; /* { dg-warning "integer overflow in expression" } */
> >>>>+}
> >>>
> >>>Why do you want a warning for (q - 1) - q ? It looks like a perfectly 
> >>>correct
> >>>way to say -1 to me (ptrdiff_t is a signed type for a reason).
> >
> >It's not that I want the warning there.  I can probably drop the two
> >lines from the test.
> 
> Well, no, I think we want those two lines, but to test that there is *no*
> warning. The bug is only halfway fixed if we still warn for (q-1)-q. But
> maybe you are trying to split the fix in 2 patches, in which case I don't
> really mind what the intermediate status is.
 
Yeah - I'd like to deal with reimplementing the optimization in fwprop
first.  The "(p - 1) - p" warning will need a different fix.

        Marek

Reply via email to