URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
// PR optimization/12215
|
// PR optimization/12215
|
// Origin:
|
// Origin:
|
// Reduced testcase by Wolfgang Bangerth
|
// Reduced testcase by Wolfgang Bangerth
|
|
|
// This used to fail because the CSE pass destroyed the CFG in presence
|
// This used to fail because the CSE pass destroyed the CFG in presence
|
// of trapping loads, which led to the deletion of basic blocks.
|
// of trapping loads, which led to the deletion of basic blocks.
|
|
|
// { dg-do compile }
|
// { dg-do compile }
|
// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
|
// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
|
|
|
|
|
struct B {
|
struct B {
|
~B() throw() {}
|
~B() throw() {}
|
};
|
};
|
|
|
struct X {
|
struct X {
|
X(const char*, const B&);
|
X(const char*, const B&);
|
~X() {}
|
~X() {}
|
};
|
};
|
|
|
bool m();
|
bool m();
|
void f(int &i, float &arg0);
|
void f(int &i, float &arg0);
|
|
|
void g (const char **argv) {
|
void g (const char **argv) {
|
float val;
|
float val;
|
int i = 1;
|
int i = 1;
|
|
|
try {
|
try {
|
while ( i < 1 )
|
while ( i < 1 )
|
{
|
{
|
X arg(argv[i], B());
|
X arg(argv[i], B());
|
if (m())
|
if (m())
|
throw(0);
|
throw(0);
|
|
|
f(i, val);
|
f(i, val);
|
}
|
}
|
} catch (...) {}
|
} catch (...) {}
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.