This meaningless testcase (reduced by delta from the real program), when compiled with g++ 4.4 (but not 4.3), produces an ICE.
extern "C" int __mysetjmp () __attribute__ ((__returns_twice__)); class TContStatus {}; class TContEvent { public: inline void Execute () throw(); }; class TCont { public: TContStatus ReadD (void* buf, int deadline) { TContEvent event; event.Execute (); return TContStatus(); } TContStatus ReadI (void *buf) { return ReadD (buf, 1); } }; void TContEvent::Execute () throw () { __mysetjmp(); } void Broken (TCont *mCont) { mCont->ReadI(0); mCont->ReadI(0); } -- Summary: internal compiler error: in initialize_cfun, at tree- inline.c:1749 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: patrakov at gmail dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39259