http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56694
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> 2013-03-25 12:49:34 UTC --- It's the lower RESX pass that causes the location to appear. And likely bogus locations in the EH on-the-side info: x = gimple_build_call (fn, 0); gimple_set_location (x, dst_r->u.must_not_throw.failure_loc); thus, the must_not_throw failure_loc either shouldn't have a BLOCK associated or it needs re-mapping during inlining / cloning. Using LOCATION_LOCUS above fixes the ICE.