Skip to content

Commit

Permalink
Add an alternative testcase for PR 70740
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
apinski-quic committed Sep 25, 2024
1 parent 6c5543d commit d1e7f3a
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions gcc/testsuite/gcc.dg/torture/pr70740-1.c
Original file line number Diff line number Diff line change
@@ -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);
}

0 comments on commit d1e7f3a

Please sign in to comment.