From 878d361864946a4295aa94bbc2f84ed4a6e37814 Mon Sep 17 00:00:00 2001 From: Teresa Johnson Date: Tue, 3 Jun 2014 14:12:51 +0000 Subject: tree-sra.c (modify_function): Record caller nodes after rebuild. 2014-06-03 Teresa Johnson * tree-sra.c (modify_function): Record caller nodes after rebuild. From-SVN: r211180 --- gcc/tree-sra.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gcc/tree-sra.c') diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index db91c8b..0afa197 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -4926,12 +4926,15 @@ modify_function (struct cgraph_node *node, ipa_parm_adjustment_vec adjustments) { struct cgraph_node *new_node; bool cfg_changed; - vec redirect_callers = collect_callers_of_node (node); rebuild_cgraph_edges (); free_dominance_info (CDI_DOMINATORS); pop_cfun (); + /* This must be done after rebuilding cgraph edges for node above. + Otherwise any recursive calls to node that are recorded in + redirect_callers will be corrupted. */ + vec redirect_callers = collect_callers_of_node (node); new_node = cgraph_function_versioning (node, redirect_callers, NULL, NULL, false, NULL, NULL, "isra"); -- cgit v1.1