aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/ipa-prop.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 13ac239..277e348 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-04-21 Jan Hubicka <jh@suse.cz>
+ * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
+
+2010-04-21 Jan Hubicka <jh@suse.cz>
+
* varpool.c (decide_is_variable_needed): Variable is always needed
during ltrans.
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index ec9f63d..af00175 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -1260,6 +1260,10 @@ ipa_edge_removal_hook (struct cgraph_edge *cs, void *data ATTRIBUTE_UNUSED)
static void
ipa_node_removal_hook (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED)
{
+ /* During IPA-CP updating we can be called on not-yet analyze clones. */
+ if (VEC_length (ipa_node_params_t, ipa_node_params_vector)
+ <= (unsigned)node->uid)
+ return;
ipa_free_node_params_substructures (IPA_NODE_REF (node));
}