http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58294
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Jan Hubicka from comment #9) > > Well, must_not_throw would work, too. > It will wind up in producing EH receiver with terminate, probably not what > we want. I think it is. Because if you have try { ..... try { bogously-nothrow-call (); } catch { } ... } catch { ... verify not from bogously-nothrow-call } we'll optimize away the inner try/catch and get into the wrong handler if we try to wire things up after inlining bogously-nothrow-call. Better terminate if the region indeed did throw (usually it's just not optimized good enough).