[Bug ipa/85421] [8 regression] internal compiler error: in ipa_propagate_frequency, at ipa-profile.c:405
jamborm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 16 21:49:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85421
Martin Jambor <jamborm at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |marxin at gcc dot gnu.org
Component|c++ |ipa
Assignee|unassigned at gcc dot gnu.org |jamborm at gcc dot gnu.org
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Mine. Fixed by the following:
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index b2627ffd05f..4e0e20af409 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3863,6 +3863,7 @@ create_specialized_node (struct cgraph_node *node,
new_node = node->create_virtual_clone (callers, replace_trees,
args_to_skip, "constprop");
+ bool have_self_recursive_calls = !self_recursive_calls.is_empty ();
for (unsigned j = 0; j < self_recursive_calls.length (); j++)
{
cgraph_edge *cs = next_edge_clone[self_recursive_calls[j]->uid];
@@ -3870,6 +3871,8 @@ create_specialized_node (struct cgraph_node *node,
gcc_assert (cs->caller == new_node);
cs->redirect_callee_duplicating_thunks (new_node);
}
+ if (have_self_recursive_calls)
+ new_node->expand_all_artificial_thunks ();
ipa_set_node_agg_value_chain (new_node, aggvals);
for (av = aggvals; av; av = av->next)
More information about the Gcc-bugs
mailing list