// 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; | |
} |