https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118442
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andi Kleen from comment #4) > The problem seems to be that the call BB has an extra fallthrough edge to > the > basic block containing the return. Perhaps it should just have an EXIT edge > or not split the RETURN? (not sure if that is legal in GIMPLE) That comes from flow_call_edges_add, see gimple_flow_call_edges_add in tree-cfg.cc