http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48611
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-18 13:36:23 UTC --- Created attachment 24030 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24030 gcc46-pr48611.patch While the bug is most probably elsewhere, I wonder why note_eh_region_may_contain_throw doesn't stop propagating on ERT_MUST_NOT_THROW regions. In my understanding no exception is ever propagated out of those regions, the program would be terminated instead, so I wonder why we should be trying to handle thrown exceptions in the outer regions. The patch makes the ICE go away, as we don't needlessly try to handle exceptions in the outer try {} finally {}.