The following C++ code currently fails at -O2 -fnon-call-exceptions:
extern "C" void abort ();
int a[3];
int f ()
{
int sum = 0;
try
{
for (int i = 0; i < 3; ++i)
sum += a[i];
}
catch (...)
{
abort ();
}
return sum;
}
I think someone forgets to cleanup the eh regions after unrolling:
t.cc: In function int f():
t.cc:2: error: BB 0 last statement has incorrectly set region
t.cc:2: internal compiler error: verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
--
Summary: [4.1 Regression] ICE after cunrolling
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,rakdver at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23626