diff options
author | Patrick Marlier <patrick.marlier@gmail.com> | 2011-12-01 17:46:32 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-12-01 09:46:32 -0800 |
commit | b0d0a2918f405c52d9b6893d3c4ed77e5d659a06 (patch) | |
tree | a4973a44ce2955c57be0c74167826201cb5f1f87 | |
parent | fdb415fe091cf23d7e816d72de95a0c40e47380d (diff) | |
download | gcc-b0d0a2918f405c52d9b6893d3c4ed77e5d659a06.zip gcc-b0d0a2918f405c52d9b6893d3c4ed77e5d659a06.tar.gz gcc-b0d0a2918f405c52d9b6893d3c4ed77e5d659a06.tar.bz2 |
re PR middle-end/51273 (ICE: vector VEC(inline_summary_t,base) index domain error, in inline_summary at ipa-inline.h:193 with -O -fgnu-tm, transaction_safe and overloaded contructor)
PR middle-end/51273
* cgraph.h (cgraph_call_node_duplication_hooks): Declare.
* cgraph.c (cgraph_call_node_duplication_hooks): Make global.
* cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
From-SVN: r181887
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cgraph.c | 2 | ||||
-rw-r--r-- | gcc/cgraph.h | 2 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 2 |
4 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6930368..1261e4b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-12-01 Patrick Marlier <patrick.marlier@gmail.com> + + PR middle-end/51273 + * cgraph.h (cgraph_call_node_duplication_hooks): Declare. + * cgraph.c (cgraph_call_node_duplication_hooks): Make global. + * cgraphunit.c (cgraph_copy_node_for_versioning): Call it. + 2011-12-01 Andrew Pinski <apinski@cavium.com> PR lto/51198 diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 44a950c..ac516ab 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -412,7 +412,7 @@ cgraph_remove_node_duplication_hook (struct cgraph_2node_hook_list *entry) } /* Call all node duplication hooks. */ -static void +void cgraph_call_node_duplication_hooks (struct cgraph_node *node1, struct cgraph_node *node2) { diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 834d3d4..0efce34 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -513,6 +513,8 @@ struct cgraph_node * cgraph_clone_node (struct cgraph_node *, tree, gcov_type, int, bool, VEC(cgraph_edge_p,heap) *, bool); struct cgraph_node *cgraph_create_function_alias (tree, tree); +void cgraph_call_node_duplication_hooks (struct cgraph_node *node1, + struct cgraph_node *node2); void cgraph_redirect_edge_callee (struct cgraph_edge *, struct cgraph_node *); void cgraph_make_edge_direct (struct cgraph_edge *, struct cgraph_node *); diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 40bcf8f..251b555 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2318,6 +2318,8 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version, cgraph_redirect_edge_callee (e, new_version); } + cgraph_call_node_duplication_hooks (old_version, new_version); + return new_version; } |