rt_gccstream/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c

27 lines
503 B
C

/* { dg-do compile } */
/* { dg-options "-O2 -fno-tree-dce -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dominator-opts" } */
/* This caused the compiler to enter an infinite loop if copies are not
fully propagated. The options are to disable copy propagation and
thus expose the bug. */
int foo (void);
struct A {
struct B {
struct B *n;
} *p;
};
static inline void baz (struct A *a)
{
a->p = a->p->n;
}
void bar (struct A a)
{
while (foo ())
baz (&a);
while (foo ());
}