A simple testcase ICEs now: struct sentry { operator bool() const { } }; void ignore(int __n) { sentry __cerb; if (__cerb) try { while (true) ; } }
--- CUT --- t2.cc: In function 'void ignore(int)': t2.cc:13: error: expected 'catch' before '}' token t2.cc:13: error: expected '(' before '}' token t2.cc:13: error: expected type-specifier before '}' token t2.cc:13: error: expected ')' before '}' token t2.cc:13: error: expected '{' before '}' token t2.cc:8: internal compiler error: Bus error Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. I reduced this while looking into PR 37500. -- Summary: [4.4 Regression] ICE after forgetting a catch after a try Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code, error-recovery Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37505