diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ipa-prop.c | 4 |
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)); } |