blob: de1d5bb6240340805d95d3b4c6acd06f32020292 [file] [log] [blame]
/* { 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 ());
}