This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [C PATCH] Discard P - (P + CST) optimization in pointer_diff (PR c/61240)
- From: Marek Polacek <polacek at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Richard Biener <rguenther at suse dot de>, "Joseph S. Myers" <joseph at codesourcery dot com>, Jakub Jelinek <jakub at redhat dot com>
- Date: Mon, 4 Aug 2014 15:03:30 +0200
- Subject: Re: [C PATCH] Discard P - (P + CST) optimization in pointer_diff (PR c/61240)
- Authentication-results: sourceware.org; auth=none
- References: <20140804101856 dot GB24292 at redhat dot com> <alpine dot DEB dot 2 dot 11 dot 1408041239590 dot 1638 at laptop-mg dot saclay dot inria dot fr> <alpine dot LSU dot 2 dot 11 dot 1408041249420 dot 20733 at zhemvz dot fhfr dot qr> <20140804120111 dot GE24292 at redhat dot com> <alpine dot DEB dot 2 dot 11 dot 1408041421390 dot 1638 at laptop-mg dot saclay dot inria dot fr>
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