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

Reply via email to