34 lines
410 B
C
34 lines
410 B
C
// PR tree-optimization/42508
|
|
// { dg-do run }
|
|
// { dg-options "-O1 -fipa-sra" }
|
|
|
|
extern "C" void abort ();
|
|
|
|
int v[10], vidx;
|
|
|
|
struct A
|
|
{
|
|
A *prev;
|
|
int i;
|
|
~A()
|
|
{
|
|
v[vidx++] = i;
|
|
delete prev;
|
|
}
|
|
};
|
|
|
|
int
|
|
main ()
|
|
{
|
|
A *a1 = new A ();
|
|
A *a2 = new A ();
|
|
a1->prev = 0;
|
|
a1->i = 1;
|
|
a2->prev = a1;
|
|
a2->i = 2;
|
|
delete a2;
|
|
if (vidx != 2 || v[0] != 2 || v[1] != 1)
|
|
abort ();
|
|
return 0;
|
|
}
|