aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Marlier <patrick.marlier@gmail.com>2011-12-01 17:46:32 +0000
committerRichard Henderson <rth@gcc.gnu.org>2011-12-01 09:46:32 -0800
commitb0d0a2918f405c52d9b6893d3c4ed77e5d659a06 (patch)
treea4973a44ce2955c57be0c74167826201cb5f1f87
parentfdb415fe091cf23d7e816d72de95a0c40e47380d (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/cgraph.c2
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphunit.c2
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;
}