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 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