http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51648

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-04 
21:26:11 UTC ---
I think the problem is that we have a noreturn call (in the short testcase
fatal_error), which doesn't have EDGE_FAKE to exit added by
add_noreturn_fake_exit_edges because it has successor edge (EDGE_EH), and
isn't added by gimple_flow_call_edges_add, because that function ignores
noreturn calls.  So, either we don't ignore noreturn calls that have any
non-fake edges in gimple_flow_call_edges_add, or change
add_noreturn_fake_exit_edges.
Honza, what do you prefer?
Changing gimple_flow_call_edges_add will only affect profile feedback I think,
while add_noreturn_fake_exit_edges will affect several other passes (sm, gcse,
...).

Reply via email to