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