aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-cp.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-02-05 19:39:24 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-02-05 18:39:24 +0000
commit370a7814fcfa84017eb844b99607517855a9d280 (patch)
tree33f5eb631da9afa03768f7dd123e6e8f5dd4aeba /gcc/ipa-cp.c
parentb291a2021d9d8ccce1d50771cac9672c58ead0f6 (diff)
downloadgcc-370a7814fcfa84017eb844b99607517855a9d280.zip
gcc-370a7814fcfa84017eb844b99607517855a9d280.tar.gz
gcc-370a7814fcfa84017eb844b99607517855a9d280.tar.bz2
ipa-cp.c (ipa_value_from_jfunc, [...]): Add bounds check.
* ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds check. From-SVN: r220458
Diffstat (limited to 'gcc/ipa-cp.c')
-rw-r--r--gcc/ipa-cp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 90fd3c2..0c540eb 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -942,7 +942,8 @@ ipa_value_from_jfunc (struct ipa_node_params *info, struct ipa_jump_func *jfunc)
{
ipcp_lattice<tree> *lat;
- if (!info->lattices)
+ if (!info->lattices
+ || idx >= ipa_get_param_count (info))
return NULL_TREE;
lat = ipa_get_scalar_lat (info, idx);
if (!lat->is_single_const ())
@@ -1004,7 +1005,8 @@ ipa_context_from_jfunc (ipa_node_params *info, cgraph_edge *cs, int csidx,
}
else
{
- if (!info->lattices)
+ if (!info->lattices
+ || srcidx >= ipa_get_param_count (info))
return ctx;
ipcp_lattice<ipa_polymorphic_call_context> *lat;
lat = ipa_get_poly_ctx_lat (info, srcidx);