39 lines
671 B
C
39 lines
671 B
C
// PR optimization/12215
|
|
// Origin: <nick@ilm.com>
|
|
// Reduced testcase by Wolfgang Bangerth <bangerth@ticam.utexas.edu>
|
|
|
|
// This used to fail because the CSE pass destroyed the CFG in presence
|
|
// of trapping loads, which led to the deletion of basic blocks.
|
|
|
|
// { dg-do compile }
|
|
// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
|
|
|
|
|
|
struct B {
|
|
~B() throw() {}
|
|
};
|
|
|
|
struct X {
|
|
X(const char*, const B&);
|
|
~X() {}
|
|
};
|
|
|
|
bool m();
|
|
void f(int &i, float &arg0);
|
|
|
|
void g (const char **argv) {
|
|
float val;
|
|
int i = 1;
|
|
|
|
try {
|
|
while ( i < 1 )
|
|
{
|
|
X arg(argv[i], B());
|
|
if (m())
|
|
throw(0);
|
|
|
|
f(i, val);
|
|
}
|
|
} catch (...) {}
|
|
}
|