On Fri, Oct 28, 2011 at 9:48 AM, David Miller <da...@davemloft.net> wrote:
>
> g++.dg/init/copy7.C makes sure that memcpy() is not emitted with
> src and dst equal.

The testcase is bogus and should be removed.  See the patch I posted
(and the PR).  Unfortunately the patch didn't get any review yet.

> The fix installed absolutely relies upon a backend implementing
> the movmem pattern, and essentially that such a pattern will
> always succeed to emit for arbitrary circumstances.

No, it doesn't.  And you can trigger similar C testcases to fail on x86_64
as well.

> However 1) not all platforms implement the pattern, it is not
> required, therefore it cannot be relied upon for correct code
> generation and 2) even those that implement this pattern have certain
> restrictions which could legitimately be triggered and thus cause the
> memcpy() with src and dst equal to still be emitted.
>
> Sparc is currently failing this testcase for reason #1, but it would
> be trivial to make minor modifications to the copy7.C test case to get
> it to fail on a score of several targets as well (even those that
> provide a movmem pattern).
>
> So we should either install a more complete fix or open the bug back
> up.

We should remove the testcase.

Richard.

Reply via email to