URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// PR tree-optimization/42508
|
// PR tree-optimization/42508
|
// { dg-do run }
|
// { dg-do run }
|
// { dg-options "-O1 -fipa-sra" }
|
// { dg-options "-O1 -fipa-sra" }
|
|
|
extern "C" void abort ();
|
extern "C" void abort ();
|
|
|
int v[10], vidx;
|
int v[10], vidx;
|
|
|
struct A
|
struct A
|
{
|
{
|
A *prev;
|
A *prev;
|
int i;
|
int i;
|
~A()
|
~A()
|
{
|
{
|
v[vidx++] = i;
|
v[vidx++] = i;
|
delete prev;
|
delete prev;
|
}
|
}
|
};
|
};
|
|
|
int
|
int
|
main ()
|
main ()
|
{
|
{
|
A *a1 = new A ();
|
A *a1 = new A ();
|
A *a2 = new A ();
|
A *a2 = new A ();
|
a1->prev = 0;
|
a1->prev = 0;
|
a1->i = 1;
|
a1->i = 1;
|
a2->prev = a1;
|
a2->prev = a1;
|
a2->i = 2;
|
a2->i = 2;
|
delete a2;
|
delete a2;
|
if (vidx != 2 || v[0] != 2 || v[1] != 1)
|
if (vidx != 2 || v[0] != 2 || v[1] != 1)
|
abort ();
|
abort ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.