http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54902
--- Comment #4 from zhenqiang.chen at linaro dot org 2012-10-23 05:35:17 UTC --- Created attachment 28512 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28512 gdb backtrace Root cause: PRE bases on the result of value numbering (run_scc_vn). At the end, it free_scc_vn. But before free_scc_vn, it might call cleanup_tree_cfg (); if (do_eh_cleanup || do_ab_cleanup) cleanup_tree_cfg (); cleanup_tree_cfg might call make_ssa_name which might reuse some "name" from the FREE_SSANAMES list. If the VN_INFO of the "name" is NULL, free_scc_vn will "Segmentation fault". Richard's patch makes "do_eh_cleanup" to false. So cleanup_tree_cfg is not called in PRE. Then no new ssa name will be created. bt.log shows the gdb backtrace to create a new ssa name.