aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-cp.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f0a330a..b4c14d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-05 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
+ check.
+
2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
* config/h8300/constraints.md ("U" constraint): Use strict
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);