diff options
author | Martin Jambor <mjambor@suse.cz> | 2010-03-18 21:07:13 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2010-03-18 21:07:13 +0100 |
commit | 8132a837da9fb586a5fd2596528178f9ea6f97a2 (patch) | |
tree | b3c65fe0aa2410f77c557a506bd3f0cf02737f6e /gcc/cgraph.h | |
parent | 7893d7acfe277b4d46f5b4f012f7f76971c33b63 (diff) | |
download | gcc-8132a837da9fb586a5fd2596528178f9ea6f97a2.zip gcc-8132a837da9fb586a5fd2596528178f9ea6f97a2.tar.gz gcc-8132a837da9fb586a5fd2596528178f9ea6f97a2.tar.bz2 |
re PR middle-end/42450 (another GCC 4.5 ICE on C++ templated code)
2010-03-18 Martin Jambor <mjambor@suse.cz>
PR middle-end/42450
* cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
* cgraphunit.c (cgraph_materialize_all_clones): Update calls in
all non-clones. Moved call redirection...
(cgraph_redirect_edge_call_stmt_to_callee): ...to this new
function.
(cgraph_materialize_all_clones): Dispose of all
combined_args_to_skip bitmaps.
(verify_cgraph_node): Do not check for edges pointing to wrong
nodes in inline clones.
* tree-inline.c (copy_bb): Call
cgraph_redirect_edge_call_stmt_to_callee.
* ipa.c (cgraph_remove_unreachable_nodes): Call
cgraph_node_remove_callees even when there are used clones.
* testsuite/g++.dg/torture/pr42450.C: New test.
From-SVN: r157546
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index f8d52eb..4f0c333 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -534,7 +534,7 @@ void cgraph_remove_edge_duplication_hook (struct cgraph_2edge_hook_list *); struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook (cgraph_2node_hook, void *); void cgraph_remove_node_duplication_hook (struct cgraph_2node_hook_list *); void cgraph_materialize_all_clones (void); - +gimple cgraph_redirect_edge_call_stmt_to_callee (struct cgraph_edge *); /* In cgraphbuild.c */ unsigned int rebuild_cgraph_edges (void); void reset_inline_failed (struct cgraph_node *); |