Add an alternative testcase for PR 70740

While looking into improving phiprop, I noticed that
the current pr70740.c testcase was being optimized almost
all the way before phiprop because the addresses were considered
the same; the arrays were all zero in size.

This adds an alternative testcase which changes the array sizes to be 1
and phiprop can and will act on this testcase now and the fix which was
being tested is actually tested now.

Tested on x86_64-linux-gnu.

	PR tree-optimization/70740

gcc/testsuite/ChangeLog:

	* gcc.dg/torture/pr70740-1.c: New test.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
This commit is contained in:
Andrew Pinski
2024-09-23 19:17:42 -07:00
parent 6c5543d3d9
commit d1e7f3a6c1

View File

@@ -0,0 +1,41 @@
/* { dg-do compile } */
/* This is an alternative to the original pr70740.c testcase,
arrays are now 1 in size where they were 0 in the other testcase. */
extern int foo (void);
extern void *memcpy (void *, const void *, __SIZE_TYPE__);
struct
{
char a[6];
} d;
struct
{
int a1[1];
int a2[1];
int a3[1];
int a4[1];
} a, c;
int b;
int *
bar ()
{
if (b)
return a.a4;
return a.a2;
}
void
baz ()
{
int *e, *f;
if (foo ())
e = c.a3;
else
e = c.a1;
memcpy (d.a, e, 6);
f = bar ();
memcpy (d.a, f, 1);
}