http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46864
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2010-12-09 14:18:57 UTC --- This is execute_sm's fault, rewrite_mem_ref_loc doesn't call maybe_clean_eh_stmt. Adding that call fixes the ICE, but a) gimple_purge_dead_eh_edges isn't called (and can't be called immediately), and I don't see how the correct eh edges would be added for the load and store stmts that are added by store motion. So, I wonder if execute_sm just shouldn't give up optimizing if the mem ref might throw.