aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-04-21 16:41:50 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-04-21 14:41:50 +0000
commitdd6d1ad715541f538a82090a8480412dde0169db (patch)
tree13fe273a15252426c76c21def9ed7cae3f787c4c /gcc
parentc9945504c9d6e69b961da97948a5b7e40404f10b (diff)
downloadgcc-dd6d1ad715541f538a82090a8480412dde0169db.zip
gcc-dd6d1ad715541f538a82090a8480412dde0169db.tar.gz
gcc-dd6d1ad715541f538a82090a8480412dde0169db.tar.bz2
* ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
From-SVN: r158610
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));
}